0.80: Released 8/02/02 * Couple compiling errors fixed * Fixed the type of max/min on events from short to int. * Made HLCA unlink the goodies socket as soon as it connects. * Added in support for admin mod and csguard/hlguard messages * Added in a $comma() function that adds commas to the number within regardless of the comma settings. * fixed the sentrydeath stat being reported twice. * Made commands within a for loop keep the same arguments as their parent * Increased buffer for load files, should improve performance. * Made /nocomma propagate over /doas * Fixed a crash in /ban * Added $(serv,time) for the current time. This was long overdue. * Added better error reporting for if expression problems * Fixed a problem when a player would be dropped and another player existed with a shorter name that matched the beginning of the dropped player. * Fixed duplicate flamethrower kills. * Added support for the Kick: log message. 0.79: Released 2/20/02 * Fixed a bug with caps. not reporting the team name correctly * Fixed a bug with skill log not being saved. * Included a dynamic system list '_teams' that keeps teams and subteams, including ally lists. This is ideally configured in .cfg, but will be auto generated if not (beware if someone joins red before blue on a map not hard coded in) * Added support for system locked lists. * Added support for player tells. * Added /echoraw command. * Fixed a problem that could happen that would cause "ghost players" -- players that were reported on server but werent really there. * Added support for 'well' flag touches and caps * Fixed a problem with $place() and numbers over 1,000 * HLCA now recognizes segmented metamod lines. * Fixed a problem with blank name "ghosts" * Added 'maptextlines' and 'maptextdelay' general configuration vars * Added "won:#" as a variable target: $(won:666,a-t.k) * Changed 'Do you mean' output to show difference in 'I' and 'l'. * Added support for HPBbots that rejoin to fill a quota. * Made the /realtimeskytex use a list called 'skytex' to determine the best choice. It will choose the key that is closest to, but less than the current time. The value is the texture name. This list is auto generated if it doesnt exist. * Added notification of executed commands that failed. * Redid /doas command to use processinput() instead of playercmd() It was causing the doas line to be counted towards cmddelay when it should not have. Also put in better error messages. * Changed /doas to be parsed as the player who is the target of the command instead of whomever issued it, like it should have been. * Added timeout_cmd event for players doing !cmd during cmddelay time. * Fixed many internal functions that could have caused crashes. * Added cntrl-f to scroll up the msg window, and cntrl-g to return to normal. This is still buggy though, and could possibly crash server. * Fixed a visual artifact left over when you changed to a map with a lesser number of teams on it. * Cleaned up a lot of the code in main.c * Added $listcount(list,key) to find out if a list has a certain key * Put the recursion count in the proper place in parsecommand so that it counts admin and player commands as a loop. * Added $(gsecleft) for seconds left in match * Changed window divider from ':' to '|' * added $(ap) and $(as) to return the player numbers for primary and secondary (useful if you want to find out if there is a primary player without getting an error) * Fixed a problem with $random() that would cause hlca to crash with the two values being the same. * Added support for new goodies stuff - private commands. * New general settings, cmdstrip, showsingle, elimdup * Added event "dupedline" for when a player has a duplicate public chat line that is stripped. * Added command /sayresp - will do a /saystat to one player if cmdstrip is on and a primary player is present, otherwise will do a normal /saystat. * MySQL support is mostly there, need to write a background save process before it is ready though. * Added 'Civilian' class to tfc. Duh. * Changed parseline to not report errors when the noerrors flag is set (when a queued item belongs to a player that left) * Fixed a problem with ghost players that involved improper names. * Fixed functions so that you can call other functions within the arguments. * Made the stat header configurable (settings general stathdr) and by default, it is blank. * Changed default config directory from 'admin' to 'configs' -- makes more sense. Plus i keep my source in admin/ so its cleaner for me. * Added some rather raw support in goodies and hlca for pseudo-entities, meaning techinically they are entities, but they are really sucky entities. Check configs/2fort.cfg for an example (which is the only documentation I have at this stage of development) * Added sentrydeath.[level].[class] variable 0.78: Released 10/24/01 * Basic support for Action Halflife added. * Added a mapview. This draws a ascii representation of the current map and shows all players. Cntrl-W switches window modes, Cntrl-E mutes the talking on the map, cntrl-R switches between letters for the player number or letters for the player class. * Added support for MetaMod. Goodies is now a metamod plugin, so you should be able to run it with admin mod, and anything else that will run alongside metamod. * More functions added, substr(), substrcase(), location(), find(). * Added if and for commands, on a_k {if ($(pt)=$(st)) cmd /saystat * $(pn) killed his teammate!} * Dead status now correctly reported again. * Added support for goodies playat, tempent * Added setgamekey and plusgamekey, for a non-player specific temp variables. * added settings general postcmd, runs a system command after hlds_run has been started * rewrote servermsg.c almost completely, segmented off all the tfc messages and provided a definitive way to write mod support. * added f_ event for the first key of a match * cleaned up a lot of code. * added 'repeat' command, will repeat anything following it on the command line with a certain delay. repeat <#> * moved a lot of the server variables into the serverinfo struct. * Added argument parsing onto playercommands $(ac) for count $(a0) through $(a20) for variables. * Added two detection methods for the 1108 spectator exploit. * changed ratio function to support subvariables 0.77: Released 8/30/01 * Rewrote Parsing code. Config variables are done with $(var) now. they can be layered: $(pk.e.$(pv)) for kills with the last used weapon. Escaping is done with '\' instead of '@'. Dont know what kind of crack I was smoking when I thought of '@'. * Included some computation variables $(%1/2) would be 50% $(=1+2*3) would be 9. $(@99030430) would be some random date. You can sub in variables, obviously. * Included support for goodies 0.1 * Added k.bland and d.bland keys for non-extraordinary kills/deaths i.e. ones not ending killstreaks, not killing teammates, not killing flag carriers, etc. * HLCA now recognizes role changes properly (when they respawn, not when they choose a new class) * Fixed problem with invalid player reference in a command queue if a player quit before the command was issued. Caused intermitted crashes * Fixed bug with command queue waiting 1 sec more than needed * Fixed bug not display text properly when people said quotes. * Segmented and streamlined TFC server messages. Beginning of support for non-tfc. * Redid and automated 'k.e.soldier.nails' type messages. * Rewrote key system to use linked lists and hash tables. Improves performance by about 5000% (rough estimation, not even exaggerating), and eats up about 500k more memory on large servers. * Added server uptime and game time left variables. $(serv,uptime), $(gtimeleft) * Made hlca keep alltime highs on every key again, since it can handle it now. * Worked around processing kill for a medic infection if the medic disconnected before the player died. * Righted some DOT kills to report the proper class the player was when he started the kill, instead of what he is when it finished. * Improved spectator tracking, still not perfect though. * Rewrote configuration parsing code. Added lists. * Rewrote event parsing code. Should see a bit of a performance improvement. * Rewrote skill system to use the 'skill' list, large performance increase and easily adjustable now. * Added detection for recursive commands * Changed to parse list variables. * Added $(pr) for a random player * Fixed $(pt) reporting a persons team incorrectly. * Added functions, $math, $ratio, $place. More to come. * Rewrote README and INSTALL files to coincide with changes. * Added protection against some weird blank name exploit that was used against me * Facts are still broken. * Added most of skill.cfg, quite a bit of tweaking is needed though. 0.76: Released 5/29/01 * Fixed recognition of bots as compared to WONID:0 * 'Admin found' line no longer says duplicate names * Redid key system. keys are independant from players now, which enables the server to keep keys on game totals, server totals, etc. Leads into keeping server/player/game/connection records. * included HLDS 3.1.0.6 logging format support. * hlca now prevents people from getting skill credit from repeatedly healing/infecting a 3rd party. (same for flames, unmasking) * included a define in hlca.h that shows unknown messages * fixed bug recognizing duplicate 'dropped' messages * added game and server structure to keep keyrings on total data and to keep info like hostname, mapname, etc. * redid goal system with new support for HLDS 3.1.0.6 TFC goals * Detpack detection (!find hasdetpack) - good for finding cheaters * fixed !find when using '!find something=true' * implemented file based player tracking by wonid. * Included a file save method. Keeps everytihing in hlcasave/ by default. * Tweaked the new keys. * Majorly redid the fact system. Now does better random facts. * Added alltime join number on Join line. * Server now counts events triggered for a player in a game. Use the event keywords countmin, countmax, and count (works like min, max, equal) * Server saves gamedata according to 'gamesave' config line in game.dat * added @cn which contains game number, if saving is enabled, this increases one per completed game on server * Name monkeys are no longer case sensitive. * Only people with valid chars in their name are allowed in server (0x20-0x126) * Fixed problem with incorrectly banning people for name theft that had the exact same name (ghost players) * Fixed problem with saying skill leaders that had ";" in their names. * Added @pw and @sw which is the name of the last weapon involved for that player * Added exploit detection for teamchanging after dropping grenade. Configged in teamexploit line in config file (set to 0 to disable) * Provided notification if you tried to kick someone using the wrong 'l' or 'i' that applies * Fixed a couple memory leaks with the new ring system. * Facts are broken at the moment. 0.75: Released 2/23/01 * Fixed bug with occasionally dropping players that werent actually dropped. * Implemented a system to more accurately compensate for lag with the hlds server * Added support for mulch_trench goals. * hlca now Auto-replaces building_dispenser with dispenser since it doesnt seem to be accurate * added searchplayers() command, and the admincmd hardcoded in, !find will search through keys (!find red,hwguy,infectp>1) * Lots of tweaks on skill system * Fixed bug in detecting duplicate players when they reconnect * Fixed bug in detecting the last WONID correctly sometimes in admin config entry * Fixed key for 'msgoverflow' * added @cp for number of players currently, @cg for amount of lag in this round, @ch for percentage of lag in this round. * fixed sentry dismantling and disp dismantling * fixed some of curses resize hangup/crash. Implemented resizing. * Included support for >100 col displays (shows more playerinfo) * streamlined join notification * fixed problem with dropping players with people with numeric names dropped. * fixed 'detpack disarmed' sp value. * included support for avanti goals/assorted messages * fixed duplicate unknown message log entries. * added @#k for knife/knives * added colors, if your terminal supports it. (hit control-j) * included support for rock2 goals/flag messages 0.74: Released 2/2/01 * Improved ban/kick logging code/fixed numerous bugs * added checkadmins() routine to recheck admin flags on players (useful if you gave someone admin, and they dont have to rejoin to get access to it) /sayadmins and /checkadmins commands dictates whether the server states the admins currently on. * added a key for 'msgoverflow' * more skill system tweaks, including spam detection only after 10 kills * server now shows '!' '%' '#' by name for admin, flag, and spam respectively. spam only works if you have skill tracking turned on * fixed bug in tot* fact counting * fixed an occasional lockup in displayplayerwin() when no players had joined yet * redid admin checking/configuration to improve flexibility and has more precise limits * took streak column off of playerwin * moved player management routines to player.c from main.c * updated help/sample config files * fixed listkeys to not crash server when you supplied wrong player # * fixed playerkb() to refer to perm ban correctly * Changed name routines to kick players with char 127 in their name, also should detect people who steal others names using 'l' instead of 'I' and vice versa. * skill system now gives two 'infection passed' freebies before deducting. 0.73: Released 1/30/01 * changed preserveteams to execute the event 'preserveteams' instead. * fixed bug in teamchange config preventing you from turning it off * added support for goals for other than 2fort (dustbowl,well,push,tempest_r) * support for broadcast commands (as in dustbowl) and named broadcast (push) * Rcon command support * kludged together support for rcon changelevel (this also fixes the occasional accounting error, but is not the perm fix) * fixed civilian team tracking * fixed typos in changelog :P * fixed bug in tracking time of entry (only happened when someone didnt 'connect' but 'entered') fixing skill points bug * added support for scoring in push * added admin log capability - adds a log file that keeps track of admin kicks and bans * added adminlog [0,1] and tempban [time in minutes] to config file * admin bans are now for a configurable amount of time instead of perm. * added 'writeid' and 'writeip' commands every time a ban is made to save the bans (make sure you have exec banned.cfg and exec listip.cfg in your autoexec.cfg) * Continual tweaks on skill system * Fixed bugs when trying to disable teamswitch prevention * added goal.whatever key for every goal a player activates 0.72: Released 01/02/01 * Added sayteamdiff command, format: /sayteamdiff <#> where # is the number of players required to say a warning that the teams are uneven. * fixed adduser() to detect duplicate players * fixed "killed by world with" parsing * Added ports to adduser()/findplayer() * fixed/enhanced "bad rcon from" parsing * fixed name change parsing to allow > 64 chars. * added dumpkeys command. Appends all known keys to key.dump. cat key.dump | sort | uniq > knownkeys.txt * added parsing for teamkills * added a skill point system, (/sayskill) rewards outstanding kills and punishes spam and general bad teamwork. Complex formula, see skill.c * added flag tracking, and a key for killflagcarrier. * added built in event unknown_cmd for when players execute a command that the server doesnt know. * added /doas command, format /doas mimics as if the command came from that player * added k.asflagcarrier key and added to skill system * added @px and @py as kills per minute and deaths per minute * added config file keyword 'preserveteams' that will kick people if they change teams after a certain spread 0.71: Released: 12/22/00 * First beta, 0.71 released.