Settings API (load/save data to INI files)

For scripting examples for learning how to use AMXX.
User avatar
Archive-Poster
Posts: 1189
Gender:
United States of America

Settings API (load/save data to INI files)

Post by Archive-Poster »

Settings API

API to load/save settings in a Key+Value format that resembles Windows INI files (http://en.wikipedia.org/wiki/INI_file).

What's new is you can store a variable amount of values in a single key, supporting the use of amxx dyamic arrays.

Use Case:

You want your plugin to use custom sounds and models, then allow users to change them. Previously it would require coding a section into the .sma file, making recompile necessary every time you want to change something. This API allows resources to be edited "externally" through the INI file instead.

Example:

Load admin knife models from file, store them in dynamic array. If section/key is not found, a new entry will be added automatically.

Code: Select all

#define SETTINGS_FILE "plugin_resources.ini"
#define MODEL_MAX_LENGTH 64

new const default_model_vknife[] = { "models/v_knife.mdl" } // Default model
new Array:g_array_models_admin_vknife

public plugin_precache()
{
    g_array_models_admin_vknife = ArrayCreate( MODEL_MAX_LENGTH, 1 )
    
    if ( !amx_load_setting_string_arr( SETTINGS_FILE, "Admin Models", "V_KNIFE", g_array_models_admin_vknife ) )
    {
        amx_save_setting_string( SETTINGS_FILE, "Admin Models", "V_KNIFE", default_model_vknife )
        ArrayPushString( g_array_models_admin_vknife, default_model_vknife )
    }
}
File syntax:

Code: Select all

; Add custom admin models here
[Admin Models]
V_KNIFE = models/admin/v_knife_dragon.mdl , models/admin/v_knife_nyan.mdl , models/admin/v_knife3.mdl
Usage:

Download files below into your scripting folder, then do: #include <amx_settings_api>.
Attachments
amx_settings_api.inc.zip
(520 Bytes) Downloaded 4 times
amx_settings_api.sma.zip
(3.33 KiB) Downloaded 5 times

Who is online

Users browsing this forum: No registered users and 1 guest