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
Przykładowy plugin
/* Script generated by Pawn Studio */ #include <amxmodx> #include <amxmisc></amxmisc></amxmodx> #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