|
|
Line 1: |
Line 1: |
− | AMX Mod X 1.76 is a small feature release and contains mostly bug fixes.
| + | and you fuck,fuck,fuck,fuck,fuck,fuck,fuck,fuck until ur penis will go troutgh ur girls ass through you stomack to ur girls mouth...and you should do it 1000000000000000000000000000000000000000000000000000000000000000000000000000million time the you fell extasy :DD |
− | AMX Mod X 1.76a is a small bug-fix release to patch up problems with 1.76.
| |
− | This changelog is brought to you by Batman and ramen.
| |
− | | |
− | =New xgfh
| |
− | kjklasfjsdh bkjvjkdlfvnjldfgjkladfgjkldfsdhjlsdgkhjdlsfkhjkfjhk,ldfhkhjlkdfjkldfjkldfhljklfh
| |
− | | |
− | ==Disabling Plugins==
| |
− | A second feature was introduced to let users <i>disable</i> plugins per map. In any plugins-*.ini file, you may now add a "disabled" flag to a plugin name. This works like the "debug" flag. Example:
| |
− | <code>
| |
− | gaben.amxx disabled
| |
− | </code>
| |
− | | |
− | This will block the plugin from being loaded from any other configuration file. So if <tt>plugins-de_dust.ini</tt> has the example line above, <tt>gaben.amxx</tt> will not be loaded from any other plugins file.
| |
− | | |
− | =New Scripting Features=
| |
− | ==Sorting==
| |
− | AMX Mod X now has a comprehensive array sorting solution. You can sort using pre-defined array types, or use your own custom comparison functions. All of the sorting routines use the qsort() function from the C standard library, which is based on the [http://linux.wku.edu/~lamonml/algor/sort/quick.html Quick Sort] algorithm.
| |
− | | |
− | ===Basic Sorting===
| |
− | The follow basic sorting natives were added. These natives sort an array in-place using pre-defined comparison routines. You can change the sorting order using an optional third parameter. By default it is <tt>Sort_Ascending</tt>, and <tt>Sort_Descending</tt> is available as well.
| |
− | *<tt>[http://www.amxmodx.org/funcwiki.php?go=func&id=1115 SortIntegers]()</tt> - Sorts an array of integers.
| |
− | *<tt>[http://www.amxmodx.org/funcwiki.php?go=func&id=1116 SortFloats]()</tt> - Sorts an array of floats.
| |
− | *<tt>[http://www.amxmodx.org/funcwiki.php?go=func&id=1117 SortStrings]()</tt> - Sorts an array of strings.
| |
− | | |
− | ===Custom Sorting===
| |
− | Furthermore, you can also define your own custom comparison functions and have the sorting algorithm run them for you. This can be useful in a variety of ways. For example, if you have an array of players and an array of those player's skills, you can easily sort the player ids by skill using this feature.
| |
− | | |
− | Custom sorting requires making a function which compares two elements of your array. Given elements e1 and e2:
| |
− | *Return -1 to mean "e1 comes before e2"
| |
− | *Return 0 to mean "e1 is equal to e2"
| |
− | *Return 1 to mean "e1 comes after e2"
| |
− | For example, a very simple formula to compare integers in this manner is: <tt>e1 - e2</tt>.
| |
− | | |
− | The custom sorting natives are:
| |
− | *<tt>[http://www.amxmodx.org/funcwiki.php?go=func&id=1118 SortCustom1D]()</tt> - Sorts a 1D array given a custom comparison function.
| |
− | *<tt>[http://www.amxmodx.org/funcwiki.php?go=func&id=1119 SortCustom2D]()</tt> - Sorts a 2D array given a custom comparison function.
| |
− | | |
− | ===Examples===
| |
− | You can see an example of each native listed above in the [http://svn.tcwonline.org/viewvc.cgi/trunk/plugins/testsuite/sorttest.sma?root=amxmodx&view=log sorting testing] plugin.
| |
− | | |
− | | |
− | =1.76b Changelog=
| |
− | AMX Mod X 1.76b was released on October 31st, 2006. Happy Halloween!
| |
− | ==Core Changes==
| |
− | *Fixed {{AMBug|46213}}: New-style menus that had numbered blanks would cause Core to guess the item numbers wrong.
| |
− | *Fixed {{AMBug|46266}}: Team name detection did not work for TFC.
| |
− | *Fixed a bug where get_func_id() would crash on an invalid plugin.
| |
− | | |
− | ==Scripting Changes==
| |
− | *Added an optional timeout parameter to SQL_MkDbTuple().
| |
− | *Added a "queuetime" parameter to threaded query handlers, to get the amount of time passed.
| |
− | *Extended CreateMultiForward() with CreateMultiForwardEx() for filtering old/new plugins from forwards.
| |
− | *Fixed {{AMBug|45337}}: SQLX_GetQueryString() did not work with threaded queries.
| |
− | *Fixed {{AMBug|46350}}: geoip.inc having faulty a double-inclusion barrier.
| |
− | *Fixed {{AMBug|46378}}: unregister_forward() attempted to remove from the wrong hook table.
| |
− | *Fixed {{AMBug|46336}}: Vexd_Utilities.inc did not include VexdUM for AMX Mod Compat compiling.
| |
− | *Fixed {{AMBug|46630}}: rename_file() could not use relative paths.
| |
− | | |
− | ==Plugin Changes==
| |
− | *Fixed {{AMBug|45990}}: amxmod_compat.amxx could conflict and crash hand-ported AMX Mod plugins.
| |
− | *Fixed {{AMBug|46340}}: miscstats.amxx could throw an RTE finding the enemy team.
| |
− | *Fixed {{AMBug|46335}}: adminchat.amxx color 'tsay' messages were not space aligned. Additionally, the leading space can now be omitted.
| |
− | *Fixed {{AMBug|46699}}: stats.amxx for DoD did not display working multi-lingual menus.
| |
− | *Fixed {{AMBug|46559}}: miscstats.amxx could throw an RTE if a player got more than 6 kills in a row.
| |
− | | |
− | ==Module Changes==
| |
− | *Fixed {{AMBug|45492}}: DoDX would overwrite the stats database on load.
| |
− | ==Other Changes==
| |
− | *Fixed {{AMBug|46112}}: WinCSX.exe would not load properly on some versions of Windows.
| |
− | *Fixed {{AMBug|45362}}: AMXX Studio did not indent correctly.
| |
− | | |
− | =1.76a Changelog=
| |
− | ==Core Changes==
| |
− | *Fixed {{AMBug|44694}}: is_user_alive() on TFC returned false information when players joined.
| |
− | *Fixed {{AMBug|45015}}: The translation string for ambiguous name matches was incorrect for English, Spanish, and German.
| |
− | *Fixed {{AMBug|44956}}: The "extra plugin files" feature could break with more than two files after upgrading to 1.76.
| |
− | *Fixed minor bugs in the installer, such as not detecting CHMOD properly.
| |
− | | |
− | ==Plugin Changes==
| |
− | *Fixed {{AMBug|45020}}: HE Grenade kill messages could interrupt each other in miscstats.sma.
| |
− | *Fixed {{AMBug|45017}}: mapsmenu.sma contained an untranslated phrase.
| |
− | *Fixed {{AMBug|40911}}: statsx.sma displayed last known attacker/victim stats to spectators.
| |
− | | |
− | ==Module Changes==
| |
− | *Fixed {{AMBug|44973}}: The CSX module incorrectly reported many knife kills as headshots.
| |
− | *Fixed {{AMBug|44964}}: SQLX Threaded Queries could crash if passed an invalid database name.
| |
− | | |
− | | |
− | =1.76 Changelog=
| |
− | ==Core Changes==
| |
− | ===New Features===
| |
− | *The compiler has been heavily optimized and will now compile plugins much faster.
| |
− | *Request {{AMBug|43012}}: You can now specify per-map plugins files. For example, you can list de_dust only plugins in configs/maps/plugins-de_dust.ini.
| |
− | *You can now specify a new "disabled" option after plugin names in plugins.ini files. This will prevent the plugin from being loaded in any config file, and is useful for disabling plugins in map-specific plugin files.
| |
− | *Added an experimental compatibility layer for AMX Mod. See [[AMX Mod Compatibility Layer (AMX Mod X)]] for more information.
| |
− | *Request {{AMBug|42871}}: Source file name is shown in the binary logs when the plugin is in the debug mode.
| |
− | *Request {{AMBug|44299}}: Error logs now show the mapname and current log file.
| |
− | *The developer test suite is now packaged with Core in the scripting folder.
| |
− | | |
− | ===Bug Fixes===
| |
− | *Improved stability and eliminated weird bugs on Linux. These were caused by code generation bugs in GCC and appear to exist primarily in versions higher than 1.60.
| |
− | *Fixed a bug where secondary plugin files would not autoload modules.
| |
− | *Fixed a serious corruption bug in callfunc_push_intrf(), callfunc_push_floatrf(), and callfunc_push_str(). Strings or data passed with these methods could be easily overwritten internally.
| |
− | *Fixed the JIT not being able to compute heaplow bounds problems.
| |
− | *Fixed {{AMBug|41317}}: ExecuteForward() string parameters would be trashed on future internal string calls.
| |
− | *Fixed {{AMBug|41777}}: time.txt was not included in the installer.
| |
− | *Fixed {{AMBug|42213}}: "amx_logs" was incorrectly listed as "amx_logsdir" in core.ini.
| |
− | *Request {{AMBug|41036}}: Improved bot detection.
| |
− | *Fixed a rare bug where passing (1<<31) into a %d format-code would print garbage characters.
| |
− | | |
− | ==Scripting Changes==
| |
− | | |
− | | |
− | ===Bug Fixes===
| |
− | *Fixed {{AMBug|42916}}: get_user_aiming() did not work on Linux.
| |
− | *Fixed {{AMBug|40963}}: GeoIP did not strip ports from IP addresses.
| |
− | *Fixed {{AMBug|41483}}: xs.inc did not have double-include prevention.
| |
− | *Fixed {{AMBug|43313}}: plugin_log() did not actually block log messages on returning PLUGIN_HANDLED.
| |
− | *Fixed {{AMBug|42097}}: Hooking FM_ServerDeactivate did not work.
| |
− | *Fixed {{AMBug|42307}}: nvault_open() did not return -1 on failure.
| |
− | *Fixed {{AMBug|42383}}: SQL_ThreadQuery() was not working when called from plugin_end().
| |
− | *Fixed {{AMBug|42321}}: TFC's Get/Set ammo natives did not work on Linux servers (thanks jRaven).
| |
− | *Fixed {{AMBug|44776}}: user_silentkill() did not save the previous message block state.
| |
− | *Fixed bug in get_user_aiming() where id and body would always be set to 0.
| |
− | *Fixed bug in dllfunc() where DLLFunc_RegisterEncoders would not actually make a call.
| |
− | *Fixed bug with floatatan() returning wrong values when trying to get angle in degrees or grades.
| |
− | *Improved accuracy of is_user_bot().
| |
− | *Rewrote replace_all() to address many serious bugs, including infinite replacements, improper re-indexing, and missed replacements.
| |
− | | |
− | ==Plugin Changes==
| |
− | ===Additions===
| |
− | *Request {{AMBug|41367}}: stats_logging.sma now logs extra weapons from CSX.
| |
− | *Request {{AMBug|44517}}: Added "Spectator" to TFC plmenu.sma's team switch list (thanks jRaven).
| |
− | | |
− | ===Bug Fixes===
| |
− | *Fixed a potential memory corruption bug in StatsX.
| |
− | *Fixed {{AMBug|42013}}: TFC team menu didn't allow for changing from blue team. Also, all plmenu plugins showed team change messages in the language of the admin.
| |
− | *Fixed {{AMBug|41768}}: statssounds.sma for TS had the wrong plugin name.
| |
− | *Fixed {{AMBug|41563}}: TFC plmenu.sma had the wrong team names.
| |
− | *Fixed {{AMBug|41259}}: amx_addadmin was messing users.ini upon new entries.
| |
− | *Fixed {{AMBug|43881}}: adminslots did not work until a mapchange was issued.
| |
− | | |
− | ==Module Fixes==
| |
− | *Fixed MySQLX threader on Linux locking up on mapchange if there were queries in the queue.
| |
− | *Fixed {{AMBug|41030}}: All stats modules could generate files that would break the file parser.
| |
− | *Fixed {{AMBug|41961}}: Fakemeta hooks for GetPlayerAuthId, GetPlayerWONId, and IsMapValid were not being reset on mapchange.
| |
− | *Fixed {{AMBug|44428}}: GeoIP country codes were out of date.
| |
− | *Updated the GeoIP library to September.
| |