Witam.
Próbuję stworzyć plugin, który dałby Adminom możliwość sprawdzania graczy pod kątem włączonej/wyłączonej mgły.
Komendy:
amx_fog <0/1> - włączanie/wyłączanie mgły
Komendy mają działać tylko i wyłącznie podczas gdy Admin jest martwy lub przebywa na spekcie.
W przypadku nie spełnienia tego warunku komunikat:
"Musisz byc martwy lub przebywac na spekcie, aby moc uzywac tej komendy!"
W przypadku, gdy Admin użyje komendy zgodnie z warunkiem powyżej, lecz w trakcie gdy korzysta z niej, stanie się żywy lub dołączy do gry to automatycznie komenda się dezaktywuje. (Zabezpieczenie przed wykorzystywaniem komendy dla własnych celów)
Flaga dostępu: ADMIN_LEVEL_A
W przypadku rozłączenia clienta (Admina), komenda się dezaktywuje.
Dodatkowo w jednym pluginie chcę zawrzeć task cykliczny co 3s, który wykonuje komendę gl_fog 1 na wszystkich z wyjątkiem Adminów korzystającym w tym czasie z wyłączonej mgły
Jestem zaledwie początkującym, mój kod, który dotychczas napisałem (wiem, tragicznie wygląda uwzględnienie taska oraz to automatyczne włączanie mgły):
#include <amxmodx> #include <amxmisc> #define PLUGIN "Admin Fog" #define VERSION "1.0" #define AUTHOR "$OLDIER" #define CZAS 1.0 new bool:FogActive public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("amx_fog 0","AdminFogON", ADMIN_LEVEL_A, "wylacza mgle dla admina") register_clcmd("amx_fog 1","AdminFogOFF", ADMIN_LEVEL_A, "wlacza mgle dla admina") set_task(CZAS, "ustaw", _, _, _, "b") register_logevent("round_start", 2, "1=Round_Start") //register_logevent("round_end", 2, "1=Round_End") } public round_start(id) { if(get_user_flags(id) & ADMIN_LEVEL_A) { if(is_user_alive(id)) { console_cmd(id, "gl_fog 1") FogActive = false } } return PLUGIN_HANDLED } public AdminFogON(id) { if(FogActive == true) { console_print(id, "Mgla jest juz wylaczona") return PLUGIN_HANDLED } if(get_user_flags(id) & ADMIN_LEVEL_H) { if(!is_user_alive(id) || get_user_team(id) == 3) { client_cmd(id,"gl_fog 0") console_print(id, "Wylaczyles sobie mgle jako Admin") FogActive = true } else { console_print(id, "Musisz byc martwy lub przebywac na spekcie, aby moc uzywac tej komendy!") } } else { console_print(id, "Nie posiadasz uprawnien do uzywania tej komendy!") } return PLUGIN_HANDLED; } public AdminFogOff(id) { if(FogActive == false) { console_print(id, "Mgla jest juz wlaczona") return PLUGIN_HANDLED } if(get_user_flags(id) & ADMIN_LEVEL_H) { if(!is_user_alive(id) || get_user_team(id) == 3) { client_cmd(id,"gl_fog 1") console_print(id, "Wlaczyles sobie mgle jako Admin") FogActive = false } else { console_print(id, "Musisz byc martwy lub przebywac na spekcie, aby moc uzywac tej komendy!") } } else { console_print(id, "Nie posiadasz uprawnien do uzywania tej komendy!") } return PLUGIN_HANDLED; } public ustaw(id) { if(FogActive == true) { if(get_user_flags(id) & ADMIN_LEVEL_H) { if(!is_user_alive(id) || get_user_team(id) == 3) return PLUGIN_HANDLED } } else { client_cmd(id, "gl_fog 1") } return PLUGIN_CONTINUE }