AMX Mod X 1.70 Scripting Changes
This article goes over the new scripting changes available in AMX Mod X version 1.70.
New Systems
CVAR Pointers
CVAR pointers are a new method of getting/retrieving CVAR values. It is a much faster method than using the get/set_cvar functions. The difference is instead of passing a "cvar name", you pass the "cvar pointer", which is a direct memory access rather than a string lookup. In order to easily accomodate this, register_cvar now returns a CVAR pointer from the CVAR you created. You can also use get_cvar_pointer. Usage is mapped as such:
- get_cvar_flags -> get_pcvar_flags
- set_cvar_flags -> set_pcvar_flags
- get_cvar_string -> get_pcvar_string
- set_cvar_string -> NONE (not implemented)
- get_cvar_num -> get_pcvar_num
- set_cvar_num -> set_pcvar_num
- get_cvar_float -> get_pcvar_float
An example of old code might be:
#include <amxmodx> public plugin_init() { register_cvar("csdm_active", "1") } public pfn_touch() { if (!get_cvar_num("csdm_active")) return PLUGIN_CONTINUE }
To use CVAR pointers and optimize your code:
#include <amxmodx> new g_csdm_active public plugin_init() { g_csdm_active = register_cvar("csdm_active", "1") } public pfn_touch() { if (!get_pcvar_num(g_csdm_active)) return PLUGIN_CONTINUE }