!!!!!!!!!!!!! IMPORTANT NOTE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Users of the mySQL version who have the query strings mysql_users_sql and/or mysql_tags_sql set, will have to change their query strings due to the Steamid support. The second parameter has to be '%s' now like the first instead of the former '%i'. The new defaults are: mysql_users_sql: SELECT pass,access FROM %s where nick='%s' or nick='%s'" mysql_tags_sql: SELECT pass,access FROM %s where '%s' REGEXP nick or nick='%s'" Changes between 2.50.26 and beta b25042 --------------------------------------- DLL Changes =========== Changes/Additions: ------------------ * Added customized libc functions for efficiency. * New scripting functions: get_userFrags(), get_userHealth(), get_userTeam(), get_userArmor(). * Added the option to use an IP in the users.ini file to grant access rights by IP. * Script functions called from plugin_init() or as the result of a vote will be called with access rights of the server console. * Changed DLL/DSO loading mechanism. The amx_admin.dll/.so will be loaded from the same location as the admin_MM DLL/DSO and can thus be moved out of the /dlls directory, too. * mySQL: Changed name of mySQL version DLL to admin_MM_mysql.dll. * mySQL: Added possibility to use the mySQL PASSWORD() function to encrypt passwords in the users/tags/models table. To switch from crypt() to PASSWORD() encryption, set mysql_use_sqlPASSWORD to 1. * Added Steamid support. See Note about mySQL usage below. * Changed to static linkage with libstdc++. * Changed team lookup. Spectators will now be reported to be in team TEAM_SPECTATOR and HLTV proxies will be reported to be in team TEAM_PROXY. * Added (BETA!) functionality to check for missing/broken entities. This is not a problem of Admin Mod but we may still be able to gather information for VALVe. Adding "melog1" to amv_beta_enable will switch on checking and logging of broken entities. Adding "mefix1" will attempt to fix them. A fix can also be triggered from during the game by using "admin_adm mefix". * Added a warning in the log when a plugin cannot register all of its native functions. * A vote no longer accounts for bots when admin_bot_protection is on. * Match a player not only by IP but also by port when re-authenticating him. * Better debug info for checking lost permissions on mapchange (hopefully). New CVARS: ---------- * amv_log_passwords: (0/1, def:0) If set to 0, passwords will not be logged in cleartext by debug messages. * amv_register_cmds: Space separated list of registering commands similar to "logd_reg" of LogD and "sm_register" of StatsMe to allow the use of "admin_command" with the exec() scripting function. * mySQL: mysql_use_sqlPASSWORD: (0/1, def:0) If set, passwords will be encrypted with the mySQL PASSWORD() function. * amv_vote_duration: (def:30) Controls how long a voting session takes. Bug Fixes: ---------- * Fixed a bug kicking players with ';' in their nicks. * Username length set to match engine limit of 33 chars. * Fixed security hole in exec() scripting function. It does not allow unquoted semicolons anymore, nor the use of 'admin_command'. The following exception applies: strings starting with "logd_reg" or "sm_register" are allowed to contain "admin_command". This is to allow registering commands for LogD and StatsMe to work. Additional commands can be added for other third party MM plugins with the amv_register_cmds CVAR. * Fixed a bug in the AM timer code. * Fixed a bug causing player nicks starting with a number to be mistaken for a sessionid or wonid. * Obsolete CVAR password_timeout removed. * Fixed a bug that prevented the use of empty passwords in users.ini. * Fixed a bug in player lookup function. * Fixed a bug counting connected players incorrectly and thus filling reserved slots. * Fixed playerinfo() function writing to default values of optional parameters. * Changed users.ini parsing function not to bail out if a line with an entry ends with an comment. * Fixed "Unknown command" message when executing a command without proper access permissions. * Fixed a memory leak in the Small AMX which would result in heap-stack collisions. * Fixed get_userorigin() to not print debug messages to the client. * Fixed that the Highlander was not reevaluted when the current Highlander left the server. Scripting Changes ================= Changes/Additions: ------------------ * Changed access() function to return the caller's access rights when called as access(-1). * Added get_userAuthId() function which obsoletes get_userWONID(). * Extended playerinfo() function to return the authid as a string. Example plugins were updated accordingly. * Added get_vaultnumdata() and set_vaultnumdata() functions for easier reading and writing of numerical values from/to the vault. * Added a new plugin (plugin_antiflood) as a standard flood detection and retribution. * Created new mod independent admin_bury and admin_unbury commands in plugin_retribution. * Created public declarations of all DLL called plugin functions (admin.inc). * Updated all standard plugins to include the admin_ commands calling conventions with the function declaration. * Changed timeleft() to account for "sv_restart" in CS. The timeleft should now be more accurate. * Added speakto() command. Similar to playsound() command but uses the HL command "speak" instead of "play". These are independent from the value of allow_client_exec. * Added plugin_checkcommand() function to check if a command is implemented by another plugin and can thus be called with plugin_exec(). Returns the number of plugins implementing that command. Bug Fixes: ---------- * Corrected description of strcmp() in string.inc. * Hopefully removed all of the possibilities of clients spamming via server responses. * Corrected swear filter for llama's and team says * Forced coding conventions of having semi-colons for all proper line ends. * Corrected the *DEAD* name changes in Counter-strike where the client would change names but the server would not. AdminMod now changes the player name back automatically. * Updated all uses of the HandleSay script function to parse correctly when there are quotation marks surrounding the messages from clients.