搜索
查看: 5410|回复: 16

【下载】AMX Mod X 1.76

[复制链接]
发表于 2006-9-18 07:42:17 | 显示全部楼层 |阅读模式 来自 中国–上海–上海
New Plugin File Features
[edit]Per-Map Plugin Files
You can now have per-map plugin configuration files. AMX Mod X will automatically load any plugins listed in files having the following name: configs/maps/plugins-<map>.ini. Thus, de_dust specific plugins will be loaded from configs/maps/plugins-de_dust.ini.

Map-specific plugin files are parsed after the main plugins.ini is parsed, and after all secondary plugins-*.ini files are parsed in the configs folder. This means that a map-specific plugin listing inherits all settings above itself.

[edit]Disabling Plugins
A second feature was introduced to let users disable 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: gaben.amxx disabled

This will block the plugin from being loaded from any other configuration file. So if plugins-de_dust.ini has the example line above, gaben.amxx will not be loaded from any other plugins file.




[edit]New Scripting Features
[edit]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 Quick Sort algorithm.

[edit]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 Sort_Ascending, and Sort_Descending is available as well.

SortIntegers() - Sorts an array of integers.
SortFloats() - Sorts an array of floats.
SortStrings() - Sorts an array of strings.
[edit]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: e1 - e2.

The custom sorting natives are:

SortCustom1D() - Sorts a 1D array given a custom comparison function.
SortCustom2D() - Sorts a 2D array given a custom comparison function.
[edit]Examples
You can see an example of each native listed above in the sorting testing plugin.




[edit]Full Changelog
[edit]Core Changes
[edit]New Features
The compiler has been heavily optimized and will now compile plugins much faster.
Request am43012: 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 am42871: Source file name is shown in the binary logs when the plugin is in the debug mode.
Request am44299: Error logs now show the mapname and current log file.
The developer test suite is now packaged with Core in the scripting folder.
[edit]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 am41317: ExecuteForward() string parameters would be trashed on future internal string calls.
Fixed am41777: time.txt was not included in the installer.
Fixed am42213: "amx_logs" was incorrectly listed as "amx_logsdir" in core.ini.
Request am41036: Improved bot detection.
Fixed a rare bug where passing (1<<31) into a %d format-code would print garbage characters.
[edit]Scripting Changes
[edit]Additions
Request am23838: Added natives to sort integers, floats, strings. Also added natives to sort custom 1D and 2D arrays using user comparison functions.
Added vdformat() for formatting variable argument strings in dynamic natives.
Added CreateLangKey() and AddTranslation() for manipulating the multilingual translator.
Added SQL_GetInsertId() to MySQL and sqLite modules.
For callfunc_push_str() and callfunc_push_array(), you can now specify an optional parameter to stop write-back on change.
Request am42810: Added callfunc_push_array() to push an array through a callfunc.
Request am42697: Added SQL_GetQueryString() to find the query string of a query handle.
Request am29544: Added nvault_touch() native for updating key timestamps.
Request am28110: Added tfc_get_user_goalitem() to determine if player is carrying a goal item (such as a flag or keycard)
Request am41295: Added CZ model types to the CsInternalModel enumeration.
Request am41635: All string formatting routines can now use '%u' to print integers as unsigned. Note that Pawn only supports signed arithmetic.
Request am41585: Enhanced functionality of glb_pStringBase with global_get() and added a new return type to pev().
Request am40967: set_fail_state() now logs that the plugin is failed.
Request am41375: cs_set_weapon_silen() now has an additional parameter to toggle whether silencer animation is shown.
Request am40169: cs_get_user_team() now has an additional parameter by reference to get the user's internal player model.
Added amxx_setpl_curweap() to the native exports table.
Added tfc_get/setweaponammo for ammo that is not in player's backpack.
Engine's entity_get and entity_set routines no longer verify that players are fully ingame. This check was deemed too restrictive.
Added hyperbolic trigonomic natives: floatsinh(), floatcosh(), and floattanh().
[edit]Bug Fixes
Fixed am42916: get_user_aiming() did not work on Linux.
Fixed am40963: GeoIP did not strip ports from IP addresses.
Fixed am41483: xs.inc did not have double-include prevention.
Fixed am43313: plugin_log() did not actually block log messages on returning PLUGIN_HANDLED.
Fixed am42097: Hooking FM_ServerDeactivate did not work.
Fixed am42307: nvault_open() did not return -1 on failure.
Fixed am42383: SQL_ThreadQuery() was not working when called from plugin_end().
Fixed am42321: TFC's Get/Set ammo natives did not work on Linux servers (thanks jRaven).
Fixed am44776: 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.
[edit]Plugin Changes
[edit]Additions
Request am41367: stats_logging.sma now logs extra weapons from CSX.
Request am44517: Added "Spectator" to TFC plmenu.sma's team switch list (thanks jRaven).
[edit]Bug Fixes
Fixed a potential memory corruption bug in StatsX.
Fixed am42013: 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 am41768: statssounds.sma for TS had the wrong plugin name.
Fixed am41563: TFC plmenu.sma had the wrong team names.
Fixed am41259: amx_addadmin was messing users.ini upon new entries.
Fixed am43881: adminslots did not work until a mapchange was issued.
[edit]Module Fixes
Fixed MySQLX threader on Linux locking up on mapchange if there were queries in the queue.
Fixed am41030: All stats modules could generate files that would break the file parser.
Fixed am41961: Fakemeta hooks for GetPlayerAuthId, GetPlayerWONId, and IsMapValid were not being reset on mapchange.
Fixed am44428: GeoIP country codes were out of date.
Updated the GeoIP library to September.
Retrieved from "http://wiki.amxmodx.org/index.php/AMX_Mod_X_1.76_Changes"


All Versions
For general upgrades, you should make sure you:

Replace all binaries.
dlls, modules / *.dll/*.so - This includes amxmodx_mm and all modules.
plugins/*.amxx - Any default plugins AMX Mod X comes with.
data/GeoIP.dat - If you use GeoIP, make sure you update the database.
Replace language files.
data/lang/*.txt - Important to make sure plugins are using the right language phrases.
Read the upgrade notes to see any other custom changes needed.
If you do scripting locally...
Replace all base include and source files (.inc, .sma).
Replace the compiler and its binaries (amxxpc, amxxpc32, amxxpc64).



[edit]Upgrading to AMX Mod X 1.76
Instructions for upgrading to AMX Mod X 1.76 from older versions are below.

[edit]From 1.75
You may want to recompile your plugins for new implementations of replace_all() and other stocks, however, 1.76 is a binary only upgrade from 1.75.
[edit]From 1.71
Follow general upgrade instructions.
Make the following configuration changes:
Recommended: Open configs/sql.cfg. Add the new cvar:
amx_sql_type "mysql"
Note: Other option is "sqlite"
Optional: Open configs/modules.ini.
If you are using MySQL or SQLite, or any custom modules, write them down.
Replace your old modules.ini with 1.75's stock version.
Re-add your custom or SQL modules back in.
Optional: Recompile 3rd party plugins.
If you wish to take advantage of some automatic module loading features, plugins will need to be recompiled with the 1.75 compiler. However, all old plugins will work as is.
[edit]From 1.70
Follow general upgrade instructions.
Make the following configuration changes:
Open configs/core.ini.
Replace the contents with the core.ini from AMX Mod X 1.75.
Note: Make sure to note any custom changes!
Continue by following instructions for 1.71.
[edit]From 1.50, 1.55, 1.60
Follow general upgrade instructions.
Make sure you have Metamod version 1.19 or higher installed.
Continue by following instructions for 1.70.
[edit]From 1.01, 1.00, or 0.20-RC4+
Follow general upgrade instructions.
Recommended: replace all of your scripting tools with the latest versions of includes and the compiler. Then, recompile all of your custom or 3rd party plugins with AMX Mod X 1.75.
Continue by following instructions for 1.50/1.55/1.60.
Retrieved from "http://wiki.amxmodx.org/index.php/Upgrading_AMX_Mod_X"

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注个册吧

×
 楼主| 发表于 2006-9-18 07:43:03 | 显示全部楼层 来自 中国–上海–上海

回复: 【下载】AMX Mod X 1.76

占位待编辑.......
回复

使用道具 举报

发表于 2006-9-18 08:48:05 | 显示全部楼层 来自 中国–四川–成都–温江区

回复: 【下载】AMX Mod X 1.76

全是鸟文~~~~~:sweat:

看来我这里高中没毕业的是看不懂了!!!期待高手汉话
回复

使用道具 举报

发表于 2006-9-18 08:58:10 | 显示全部楼层 来自 中国–黑龙江–大庆

回复: 【下载】AMX Mod X 1.76

哦OMG.AHCAT 也太快了吧
回复

使用道具 举报

发表于 2006-9-18 09:41:57 | 显示全部楼层 来自 中国–四川–广安

回复: 【下载】AMX Mod X 1.76

沙发,先下看看........................
回复

使用道具 举报

发表于 2006-9-18 09:49:33 | 显示全部楼层 来自 中国–广东–惠州

回复: 【下载】AMX Mod X 1.76

抢个位置,好的东西别错过,不过是英文,有点不懂!
回复

使用道具 举报

发表于 2006-9-18 09:50:39 | 显示全部楼层 来自 中国–广东–深圳–罗湖区

回复: 【下载】AMX Mod X 1.76

好东西啊!下来测试一下先!
回复

使用道具 举报

发表于 2006-9-18 12:02:49 | 显示全部楼层 来自 中国–湖北–武汉

回复: 【下载】AMX Mod X 1.76

哇靠 我要下载下来看看...
我每天守官网的 就前几天没来 竟然出了...
回复

使用道具 举报

发表于 2006-9-18 12:43:34 | 显示全部楼层 来自 中国–陕西–西安

回复: 【下载】AMX Mod X 1.76

:) 这个要第1时间测试哈。。
回复

使用道具 举报

发表于 2006-9-18 14:19:16 | 显示全部楼层 来自 中国–上海–上海–松江区

回复: 【下载】AMX Mod X 1.76

哇...还能支持CS1.5呀....爽爽爽!!!
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注个册吧

快速回复 返回顶部 返回列表