AMX Mod X 1.8.0 Changes
AMX Mod X 1.8 is a large release with many changes, both to the development API and user-mode features.
Contents
Per-Map Features
You can now have per-map prefix-based configuration files for plugins and .cfg scripts.
- configs/maps/prefix_<prefix>.cfg (for example)
- configs/maps/prefix_de.cfg will run on any de_* map.
- configs/maps/plugins-<prefix>.ini (for example)
- configs/maps/plugins-de.ini will load all contained plugins on any de_* map.
Command Flag Changing
You can now change the access flags required by commands without recompiling or editing scripts. AMX Mod X caches all command flags in configs/cmdaccess.ini, where they can be easily edited.
Ham Sandwich
Ham Sandwich is a very powerful module by sawce which can hook and call virtual CBaseEntity functions on a variety of mods. For more information, see the [[1]] file.
Dynamic Global Arrays
Also by sawce, dynamic global arrays are now available in AMX Mod X. You can read the full specs in [[2]].
Additionally, the hardcoded limits of a few plugins have been lifted:
- Admins are now dynamic and not limited to MAX_ADMINS.
- Mapchooser no longer has a predefined map limit.
- Maps menu no longer has a predefined map limit.
- imessage no longer has a predefined message limit.
Changelog
Overall Changes
- Added a new module, Ham Sandwich, for hooking and calling virtual CBaseEntity functions in mods.
- Command flags are now initially dumped to disk and can be edited via configs/cmdaccess.ini.
- Added am48738: Romanian translation from X-5173.
- Added am50741 and am43830: per-map plugins files can now be prefixed based.
- Added amb17: New menu rendering is now more consistent; non-consistent controls are deprecated.
- Added amb32: The server console commands "amxx cvars" and "amxx cmds" can now filter by plugin.
- Added amb122: Log file names now include a four-digit year.
- Fixed amb18: New menus are now properly destroyed if overridden.
- Fixed amb46: is_user_bot had some false positives.
- Fixed amb69: Fixed Metamod trying to reload AMX Mod X against a poorly configured clock.
- Fixed amb207: New menus now display "0" instead of "10."
- Fixed amb208: New menus did not reset callback results after each call.
- Fixed amb200: Dynamic/fake natives were not re-entrant.
- Fixed amb244: Run-time errors blocked forwards.
- Fixed amb305: Core crashed on mods that removed the standard mp_timelimit cvar.
- Fixed many various internal new menu rendering and item selection bugs.
Scripting Changes
- All include files are now #pragma semicolon safe.
- New menu functions are now in a separate, newly documented include file (newmenus.inc).
- Added natives for dynamic global arrays.
- Added a new, magic any tag from SourceMod.
- Added a charsmax macro for safe sizeof(string)-1 usage.
- Added set_pcvar_string().
- Added LookupLangKey().
- Added SQL_QuoteString().
- Added [g|s]et_pdata_cbase[_safe]() to the Ham Sandwich module.
- Added geoip_code[2|3]_ex(), which address a serious issue in the now deprecated geoip_code[2|3]().
- Added lookup_sequence(), set_controller(), set_pev_string(), and pev_serial() to Fakemeta.
- Added ns_get_user_team.
- Added a menu property to change the numbering color.
- Added amb27: SQL_Rewind().
- Added amb37: cs_[g|s]et_user_submodel().
- Added amb38: cs_[g|s]et_user_lastactivity().
- Added amb39: cs_[g|s]et_hostage_lastuse() and cs_[g|s]et_hostage_nextuser().
- Added amb63: floatmin(), floatmax(), and floatclamp().
- Added amb76: Formatting functions can now use %x or %X for hexadecimal numbers.
- Added amb92: create_tr2() and free_tr2().
- Added amb205: cs_[g|s]et_c4_explode_time().
- Added amb216: SQL_MakeStdTuple() now has a timeout parameter.
- Added amb237: Fakemeta can now call "ServerPrint."
- Added amb242: cs_[g|s]et_user_hostagekills().
- Added amb245: precache_sound now returns a precache index.
- Added amb261: has_flag() and has_all_flags().
- Added amb291: cs_[g|s]et_c4_defusing().
- Added amb673: regex_compile() and regex_match_c for pre-compiling expressions.
- Added am46213: player_menu_info() now returns a page number.
- Added am51064: Some parameters to get_plugin are now optional.
- Added am50610: Some parameters to get_user_weapon are now optional.
- Added am48841: tfc_is_user_feigning().
- Added am45664: tfc_is_team_ally().
- Fixed am49337: get_pcvar_float() malfunctioned on high numbers.
- Fixed amb78: get_concmdsnum could return an incorrect result.
- Fixed amb85: Tag mismatches on ShowSyncHudMsg().
- Fixed amb90: set_native_filter() did not work in rare cases.
- Fixed amb107: socket_open() didn't return an error by reference.
- Fixed amb110: socket_change() could return 1 on certain failures.
- Fixed amb116: DispatchKeyValue() did not work on worldspawn (entity 0).
- Fixed amb230: radius_damage() didn't kill players on all mods.
- Fixed amb257: get_user_origin() mode 4 had false positives.
- Fixed amb343: TFC_ClearModel() did not function as documented.
- Fixed amb421: get_user_weapons() could omit a weapon on Day of Defeat.
- Fixed amb437: dod_set_user_kills() and dod_set_user_score() could mess up the scoreboard.
- Fixed amb519: geoip_code[2|3]() buffer overflowed on error.
- Fixed amb736: find_entity() was defined twice.
- Fixed a memory leak in SortCustom1D().
- Fixed a crash bug in fwrite_blocks().
Plugin Changes
- There is no longer a hardcoded limit to the number of admins.
- There is no longer a hardcoded limit to the map list.
- There is no longer a hardcoded limit to the number of "imessages."
- Added amb34: There are now plugin command/cvar menus.
- Added am45044: amx_banmenu now prints the ban time length.
- Added am43757: amx_addadmin now writes a comment with the player's name.
- Added am29353: amx_plugins now prints paginated output.
- Added am50742: admin.sma now supports prefix based per-map configs.
- Added amb28: statscfg.sma can now use translations.
- Added amb30: csstats_rankbots prevents bots from showing on /top15.
- Added amb31: plmenu.sma ban and slap options are now configurable.
- Added amb42: Added new values for amx_show_activity.
- Added amb51: amx_vote can now take more than two options.
- Added amb64: amx_voteban autodetects whether it should IP ban.
- Added amb307: amx_addban now caches the last ten connections.
- Added amb311: mapcycle file now ignores .bsp extensions.
- Added amb340: amx_ban/amx_banip now display a reason in the activity.
- Added amb427: Additional weapons to dod_[g|s]et_user_ammo().
- Added amb743: plmenu for cstrike has an option to move to spectator.
- Fixed amb29: pausecfg.sma did not translate two phrases.
- Fixed amb91: miscstats.sma truncated some language translations.
- Fixed amb94: amx_psay sometimes sent truncated messages.
- Fixed amb109: mapsmenu.sma now checks mapcyclefile before reverting to mapcycle.txt.
- Fixed amb118: amx_help would not list ADMIN_ADMIN commands.
- Fixed amb130: Various menus did not take ADMIN_ALL or ADMIN_ADMIN into account.
- Fixed amb183: plmenu.sma did not work on Natural Selection.
- Fixed amb196: amx_modules did not handle invalid modules properly.
- Fixed amb222: cl_rebuy could exploit CS weapon restrictions. This also makes CZ bots obey restrictions.
- Fixed amb228: amxmod_compat could cause set_user_hitzones() to break.
- Fixed amb350: traceline_set_float from the AMX Mod Compat layer was broken.
- Fixed amb467: conmotd.txt is now removed.
- Fixed amb633: Immune admins can now target themselves.
- Fixed amb790: admin.sma parsed beginning spaces incorrectly in users.ini.
- Fixed a potential exploit in adminslots.sma.
- SQL cvars are now protected.