Inline Config API

Post Reply
greenie
Full Member
Full Member
Posts: 1815
Joined: Sun Nov 21, 2021 4:55 pm
Jucator SA:MP ?: Nu
Nick:: greenie
Jucator CS ?: Nu

Inline Config API

Post by greenie »

Sometimes there is a need to configure compiled plugin, but cvars and custom *.ini and *.cfg files seems redundant and annoying.

This very simple plugin allows to pass some args to any plugins just inside plugins.ini. It scans /amxmodx/configs dir for plugins.ini and plugins-*.ini, and then scans these files for embedded configs (see syntax below). Per-map configs aren't yet supported.

Embedding syntax:
plugin-name.amxx debug-etc endline
[;@arg body endline]
[;@arg body endline]
[;@arg body endline]
...
Embedding example:
myplugin.amxx
;@abchmu

my_extra_item.amxx
;@name Wunderwaffe
;@cost 12000

my_stats.amxx
;@host myhost.net
;@db cs_stats
;@user cs_stats
;@pass 123456
How to read:
public plugin_init()
{
...
read_inline_config()
...
}

read_inline_config()
{
new num_records = InlineConfig_NumRecords()
new record_data[100]
for(new record = 1; record <= num_records; record++)
{
InlineConfig_GetRecord(record, record_data, charsmax(record_data))
...
}
}
Comments on one line with args won't be recognized, thus args may inclue ';' and '//'.
myplugin.amxx
;@http://www.amxmodx.org/
;@one;two;three;
No comment lines allowed between plugin and its args. Comments after plugin name are still allowed.
good_plugin.amxx debug // this plugin rocks
;@this arg will pass

bad_plugin.amxx
;yay!
;@this arg won't pass

;disabled_plugin.amxx // here is a reason for such rule
;@this arg won't pass
inline config.zip
Post Reply

Return to “Admin Commands”