Jest to projekt którego założeniem było ułatwienie pracy i zarządzania configami oraz dodania funkcjonalności której wcześniej nie było w amxxie.
Wrzucając framework do projektu dostajemy do dyspozycji dwa nowe forwardy
- plugin_config
- plugin_config_loaded
oraz funkcje publiczną do wywołania
- CFWInitialize( configName[] )
plugin_config – wykonuje się przed plugin_precache więc jest to pierwsza funkcja uruchamiana w pluginie
w tym forwardzie rejestrujemy wszystkie cvary. Do funkcji register_cvar został dodany jeden nowy parametr description. Czyli opis cvara.
Przykład użycia
register_cvar( "test_cvar" , "1" ,.description = "Testowy cvar" );
Drugi forward plugin_config_loaded jest uruchamiany po załadowaniu wszystkich cvarów jest to funkcja wykonywana przed plugin_precache.
W tym forwardzie pobieramy sobie wszystkie dane z cvarów które są nam potrzebne.
Funkcje CFWInitialize( configName[] ) uruchamiamy w forwadzie plugin_config
np.
CFWInitialize( "testConfig" );
pierwszym parametrem jest nazwa configu do utworzenia.
Prywatne metody w frameworku to
- __CFWregister_cvar
- __CFWloadConfig
- __CFWsaveConfig
Należy je tylko wykonywać jeśli dokładnie wie co chce się zrobić
Wszelkie pluginy pojawia się w folderze
configs/plugin/nazwaConfiga.cfg
config.zip Download
Przykładowy plugin
/* Script generated by Pawn Studio */
#include
#include
#include "config"
#define PLUGIN "testConfig"
#define AUTHOR "DarkGL"
#define VERSION "1.0"
new cvarResult;
#pragma unused cvarResult
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR);
}
public plugin_precache(){
}
public plugin_cfg(){
}
public plugin_config(){
CFWInitialize( "testConfig" );
register_cvar( "test_cvar" , "1" ,.description = "Testowy cvar" );
}
public plugin_config_loaded(){
cvarResult = get_cvar_num( "test_cvar" );
log_amx( "config loaded cvarResult: %d" , cvarResult );
}
i jak dolacze to to juz nie moge w kodzie zdefiniowac swojego precache’a bo bedzie ze function is already defined
i jak dolacze to to juz nie moge w kodzie zdefiniowac swojego precache’a bo bedzie ze function is already defined // nie , funkcja jest owijana więc nie dojdzie do takiej sytuacji