Difference between revisions of "AutoConfigs (AMX Mod X Scripting)"
(Added AutoConfigs documentation) |
m (Replaced the hardcoded page name with PAGENAME global) |
||
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | {{Languages| | + | {{Languages|{{PAGENAME}}}} |
Line 12: | Line 12: | ||
=== Native === | === Native === | ||
− | + | {{margin|20px 0 15px 0|{{tt|AutoExecConfig({{color|green|bool}}:{{h:title||autoCreate}} <nowiki>=</nowiki> true, const {{h:title||name}}[] <nowiki>=</nowiki> "", const {{h:title||folder}}[] <nowiki>=</nowiki> "")|opt=large}}}} | |
− | |||
:Specifies that the given config file should be executed after plugin load. | :Specifies that the given config file should be executed after plugin load. | ||
Line 20: | Line 19: | ||
| {{tt|autoCreate}} || {{ns}} If true, AMX Mod X will dump all cvars created by the plugin into a config file if the specified config file does not exist. | | {{tt|autoCreate}} || {{ns}} If true, AMX Mod X will dump all cvars created by the plugin into a config file if the specified config file does not exist. | ||
|- | |- | ||
− | | {{tt|name}} || {{ns}} Name of the config file (excluding the {{tt|.cfg|opt=nobg}} extension). If empty, the plugin's name will be used instead, with {{tt| | + | | {{tt|name}} || {{ns}} Name of the config file (excluding the {{tt|.cfg|opt=nobg}} extension). If empty, the plugin's name will be used instead, with {{tt|plugin-|opt=nobg}} prepended. For example, {{tt|hat.amxx|opt=nobg}} becomes {{tt|plugin-hat.cfg|opt=nobg}}. |
|- | |- | ||
| {{tt|folder}} || {{ns}} Optionally change the folder under the main configs folder. By default configs go in {{tt|/amxmodx/configs/|opt=nobg}}. | | {{tt|folder}} || {{ns}} Optionally change the folder under the main configs folder. By default configs go in {{tt|/amxmodx/configs/|opt=nobg}}. | ||
Line 27: | Line 26: | ||
:{{alert|info|Note:|It is possible to write nested folders; AMX Mod X will attempt to create each one.|opt=full-border}} | :{{alert|info|Note:|It is possible to write nested folders; AMX Mod X will attempt to create each one.|opt=full-border}} | ||
:{{alert|info|Note:|If you have multiple {{tt|AutoExecConfig|opt=nobg}} calls marked with {{tt|autoCreate|opt=nobg}} being true, the first file to be auto created will prevent any others from being created. Thus, there is no way to automatically split cvars between multiple files.|opt=full-border}} | :{{alert|info|Note:|If you have multiple {{tt|AutoExecConfig|opt=nobg}} calls marked with {{tt|autoCreate|opt=nobg}} being true, the first file to be auto created will prevent any others from being created. Thus, there is no way to automatically split cvars between multiple files.|opt=full-border}} | ||
+ | :{{alert|success|Example:|{{tt|{{color|green|// Default values. /configs/plugins/plugin-hat.cfg will be created (if not present) and executed.}}<br />AutoExecConfig();<br />{{color|green|// plugin-hat.cfg will executed only.}}<br />AutoExecConfig(.autoCreate <nowiki>=</nowiki> false);<br />{{color|green|// plugin-MyHat.cfg will be created (if not present) and executed.}}<br />AutoExecConfig(.name <nowiki>=</nowiki> "MyHat");<br />{{color|green|// /configs/my-plugins/plugin-hat.cfg will be created (if not present) and executed.}}<br />AutoExecConfig(.folder <nowiki>=</nowiki> "my-plugins");|opt=nobg}}|opt=full-border}} | ||
=== Forward === | === Forward === | ||
− | + | {{margin|20px 0 15px 0|{{tt|OnConfigsExecuted()|opt=large}}}} | |
:Called when the map has loaded, and all configs are done executing. | :Called when the map has loaded, and all configs are done executing. | ||
Line 37: | Line 37: | ||
:{{alert|info|Note:|This is best place to initialize plugin functions which are based on cvar data.|opt=full-border}} | :{{alert|info|Note:|This is best place to initialize plugin functions which are based on cvar data.|opt=full-border}} | ||
:{{alert|info|Note:|This will always be called once and only once per map. It will be called few seconds after {{tt|plugin_cfg()|opt=nobg}}.|opt=full-border}} | :{{alert|info|Note:|This will always be called once and only once per map. It will be called few seconds after {{tt|plugin_cfg()|opt=nobg}}.|opt=full-border}} | ||
+ | :{{alert|success|Example:|{{tt|public OnConfigsExecuted()<br />{<br />{{ns|4}}new const value <nowiki>=</nowiki> get_cvar_num("mp_timelimit");<br />{{ns|4}}...<br />}|opt=nobg}}|opt=full-border}} | ||
− | + | {{margin|30px 0 15px 0|{{tt|OnAutoConfigsBuffered()|opt=large}}}} | |
:Called when the map has loaded, right after {{tt|plugin_cfg()|opt=nobg}} but any time before {{tt|OnConfigsExecuted()|opt=nobg}}. | :Called when the map has loaded, right after {{tt|plugin_cfg()|opt=nobg}} but any time before {{tt|OnConfigsExecuted()|opt=nobg}}. | ||
Line 78: | Line 79: | ||
</pawn> | </pawn> | ||
− | [[Category: | + | [[Category:Scripting_(AMX_Mod_X)]] |
Latest revision as of 16:57, 17 June 2017
Language: | English • français |
---|
Contents
Purpose
AMX Mod X provides a system for simple plugins to automatically generate config files which get executed on load. This is done via the AutoExecConfig
native in scripting/include/amxmodx.inc
.
Once all configuration files are executed, OnConfigsExecuted
is called. This forward will always be called, even if your plugin had no configs or if it was loaded late.
Usage
Native
AutoExecConfig(bool:autoCreate = true, const name[] = "", const folder[] = "")
- Specifies that the given config file should be executed after plugin load.
autoCreate
If true, AMX Mod X will dump all cvars created by the plugin into a config file if the specified config file does not exist. name
Name of the config file (excluding the .cfg
extension). If empty, the plugin's name will be used instead, withplugin-
prepended. For example,hat.amxx
becomesplugin-hat.cfg
.folder
Optionally change the folder under the main configs folder. By default configs go in /amxmodx/configs/
.
- Note:It is possible to write nested folders; AMX Mod X will attempt to create each one.
- Note:If you have multiple
AutoExecConfig
calls marked withautoCreate
being true, the first file to be auto created will prevent any others from being created. Thus, there is no way to automatically split cvars between multiple files. - Example:
// Default values. /configs/plugins/plugin-hat.cfg will be created (if not present) and executed.
AutoExecConfig();
// plugin-hat.cfg will executed only.
AutoExecConfig(.autoCreate = false);
// plugin-MyHat.cfg will be created (if not present) and executed.
AutoExecConfig(.name = "MyHat");
// /configs/my-plugins/plugin-hat.cfg will be created (if not present) and executed.
AutoExecConfig(.folder = "my-plugins");
Forward
OnConfigsExecuted()
- Called when the map has loaded, and all configs are done executing.
- This includes
servercfgfile
(server.cfg
),amxx.cfg
, plugin's config, and per-map config.
- Note:This is best place to initialize plugin functions which are based on cvar data.
- Note:This will always be called once and only once per map. It will be called few seconds after
plugin_cfg()
. - Example:
public OnConfigsExecuted()
{
new const value = get_cvar_num("mp_timelimit");
...
}
OnAutoConfigsBuffered()
- Called when the map has loaded, right after
plugin_cfg()
but any time beforeOnConfigsExecuted()
. - It's called after
amxx.cfg
and allAutoExecConfig
exec commands have been added to the server command buffer.
- Note:This will always be called once and only once per map.
Example
#include <amxmodx> public plugin_init() { register_plugin("Hat", "User", "1.0"); create_cvar("mysqlk_database", "", .description = "MySQL database"); create_cvar("mysqlk_host", "localhost", .description = "MySQL host, use this to configure various^nthings for your server."); AutoExecConfig(); }
That would export a config file that looks like this:
// This file was auto-generated by AMX Mod X (v1.9) // Cvars for plugin "Hat" by "User" (hat.amxx, v1.0) // MySQL database // - // Default: "" mysqlk_database "" // MySQL host, use this to configure various // things for your server. // - // Default: "localhost" mysqlk_host "localhost"