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
}


Dodatki SourceMod














