#include <amxmodx>
#include <amxmisc>
#include <engine>
#define PLUGIN "Admin rendszer"
#define VERSION "1.0"
#define AUTHOR "qKKKJ"
#define FILE_NAME "adminok.ini"
#define MAP ADMIN_MAP
#define VOTE ADMIN_VOTE
new bool: bannolhat[33] = false
new bool: olhet[33] = false
new bool: kickelhet[33] = false
new bool: menujog[33] = false
new configsDir[64]
new Temp[192]
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
get_configsdir(configsDir, 63)
format(configsDir, 63, "%s/%s", configsDir, FILE_NAME)
register_concmd("adminmenu", "ShowMenu")
}
//Alap menu
public ShowMenu(id)
{
if(menujog[id] == true) {
new menu = menu_create("Admin menu by qKKKJ", "mh_MyMenu");
formatex(Temp, charsmax(Temp), "%s", kickelhet[id] ? "Kick":"\dKick")
menu_additem(menu, Temp, "", 0); // case 0
formatex(Temp, 191, "%s", bannolhat[id] ? "Ban":"\dBan")
menu_additem(menu, Temp, "", 0); // case 1
formatex(Temp, 191, "%s", olhet[id] ? "Megoles":"\dMegoles")
menu_additem(menu, Temp, "", 0); // case 2
menu_additem(menu, "Informacio", "", 0); // case 4
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
}
else client_print(id, print_console, "Nincs elerhetoseged ehhez a parancshoz!")
return PLUGIN_HANDLED;
}
public mh_MyMenu(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_cancel(id);
return PLUGIN_HANDLED;
}
new command[6], name[64], access, callback;
menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
switch(item)
{
case 0: kickmenu(id)
case 1: banmenu(id)
case 2: olesmenu(id)
case 3: show_motd(id, "addons/amxmodx/configs/info.txt")
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
//Kickmenu
public kickmenu(id)
{
if(kickelhet[id] == true) {
new menu = menu_create("Kit akarsz kirugni?", "kick_hnd");
new players[32], pnum, tempid;
new szName[32], szTempid[10];
get_players(players, pnum);
for( new i; i<pnum; i++ )
{
tempid = players[i];
get_user_name(tempid, szName, charsmax(szName));
num_to_str(tempid, szTempid, charsmax(szTempid));
menu_additem(menu, szName, szTempid, 0);
}
menu_display(id, menu, 0);
}
}
public kick_hnd(id, menu, item)
{
if( item == MENU_EXIT ) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new tempid = str_to_num(data);
new tmpnev[32], admnev[32]
get_user_name(id, admnev, 31)
get_user_name(tempid, tmpnev, 31)
server_cmd("amx_kick ^"%s^"", tmpnev)
client_print(0, print_chat, "%s kickelte %s -t", admnev, tmpnev)
menu_destroy(menu);
return PLUGIN_HANDLED;
}
//Ban menu ido valasztas
public banmenu(id)
{
if(bannolhat[id] == true) {
new menu = menu_create("Valazd ki mennyi idore szeretnel bannolni", "bn_ido");
menu_additem(menu, "5 perc", "", 0); // case 0
menu_additem(menu, "10 perc", "", 0); // case 1
menu_additem(menu, "15 pec", "", 0); // case 2
menu_additem(menu, "1 ora", "", 0); // case 3
menu_setprop(menu, MPROP_EXIT, MEXIT_ALL);
menu_display(id, menu, 0);
}
return PLUGIN_HANDLED;
}
public bn_ido(id, menu, item)
{
if(item == MENU_EXIT)
{
menu_cancel(id);
return PLUGIN_HANDLED;
}
new command[6], name[64], access, callback;
menu_item_getinfo(menu, item, access, command, sizeof command - 1, name, sizeof name - 1, callback);
switch(item)
{
case 0: fivebn(id)
case 1: tizperc(id)
case 2: tizenot(id)
case 3: egyora(id)
}
menu_destroy(menu);
return PLUGIN_HANDLED;
}
//5 perc ban
public fivebn(id)
{
new menu = menu_create("Kit akarsz bannolni?", "five_hand");
new players[32], pnum, tempid;
new szName[32], szTempid[10];
get_players(players, pnum);
for( new i; i<pnum; i++ )
{
tempid = players[i];
get_user_name(tempid, szName, charsmax(szName));
num_to_str(tempid, szTempid, charsmax(szTempid));
menu_additem(menu, szName, szTempid, 0);
}
menu_display(id, menu, 0);
}
public five_hand(id, menu, item)
{
if( item == MENU_EXIT ) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new tempid = str_to_num(data);
new tmpnev[32], admnev[32]
get_user_name(id, admnev, 31)
get_user_name(tempid, tmpnev, 31)
server_cmd("amx_ban ^"%s^" ^"5^"", tmpnev)
client_print(0, print_chat, "%s bannolta %s -t 5 percre", admnev, tmpnev)
menu_destroy(menu);
return PLUGIN_HANDLED;
}
//10 p
public tizperc(id)
{
new menu = menu_create("Kit akarsz bannolni?", "ten_hand");
new players[32], pnum, tempid;
new szName[32], szTempid[10];
get_players(players, pnum);
for( new i; i<pnum; i++ )
{
tempid = players[i];
get_user_name(tempid, szName, charsmax(szName));
num_to_str(tempid, szTempid, charsmax(szTempid));
menu_additem(menu, szName, szTempid, 0);
}
menu_display(id, menu, 0);
}
public ten_hand(id, menu, item)
{
if( item == MENU_EXIT ) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new tempid = str_to_num(data);
new tmpnev[32], admnev[32]
get_user_name(id, admnev, 31)
get_user_name(tempid, tmpnev, 31)
server_cmd("amx_ban ^"%s^" ^"10^"", tmpnev)
client_print(0, print_chat, "%s bannolta %s -t 10 percre", admnev, tmpnev)
menu_destroy(menu);
return PLUGIN_HANDLED;
}
//15 p
public tizenot(id)
{
new menu = menu_create("Kit akarsz bannolni?", "tot_hand");
new players[32], pnum, tempid;
new szName[32], szTempid[10];
get_players(players, pnum);
for( new i; i<pnum; i++ )
{
tempid = players[i];
get_user_name(tempid, szName, charsmax(szName));
num_to_str(tempid, szTempid, charsmax(szTempid));
menu_additem(menu, szName, szTempid, 0);
}
menu_display(id, menu, 0);
}
public tot_hand(id, menu, item)
{
if( item == MENU_EXIT ) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new tempid = str_to_num(data);
new tmpnev[32], admnev[32]
get_user_name(id, admnev, 31)
get_user_name(tempid, tmpnev, 31)
server_cmd("amx_ban ^"%s^" ^"15^"", tmpnev)
client_print(0, print_chat, "%s bannolta %s -t 15 percre", admnev, tmpnev)
menu_destroy(menu);
return PLUGIN_HANDLED;
}
//1 o
public egyora(id)
{
new menu = menu_create("Kit akarsz bannolni?", "ora_hand");
new players[32], pnum, tempid;
new szName[32], szTempid[10];
get_players(players, pnum);
for( new i; i<pnum; i++ )
{
tempid = players[i];
get_user_name(tempid, szName, charsmax(szName));
num_to_str(tempid, szTempid, charsmax(szTempid));
menu_additem(menu, szName, szTempid, 0);
}
menu_display(id, menu, 0);
}
public ora_hand(id, menu, item)
{
if( item == MENU_EXIT ) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new tempid = str_to_num(data);
new tmpnev[32], admnev[32]
get_user_name(id, admnev, 31)
get_user_name(tempid, tmpnev, 31)
server_cmd("amx_ban ^"%s^" ^"60^"", tmpnev)
client_print(0, print_chat, "%s bannolta %s -t 1 orara", admnev, tmpnev)
menu_destroy(menu);
return PLUGIN_HANDLED;
}
//2 o
public ketora(id)
{
new menu = menu_create("Kit akarsz bannolni?", "ketora_hand");
new players[32], pnum, tempid;
new szName[32], szTempid[10];
get_players(players, pnum);
for( new i; i<pnum; i++ )
{
tempid = players[i];
get_user_name(tempid, szName, charsmax(szName));
num_to_str(tempid, szTempid, charsmax(szTempid));
menu_additem(menu, szName, szTempid, 0);
}
menu_display(id, menu, 0);
}
public ketora_hand(id, menu, item)
{
if( item == MENU_EXIT ) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new tempid = str_to_num(data);
new tmpnev[32], admnev[32]
get_user_name(id, admnev, 31)
get_user_name(tempid, tmpnev, 31)
server_cmd("amx_ban ^"%s^" ^"120^"", tmpnev)
client_print(0, print_chat, "%s bannolta %s -t 2 orara", admnev, tmpnev)
menu_destroy(menu);
return PLUGIN_HANDLED;
}
//3o
public haromora(id)
{
new menu = menu_create("Kit akarsz bannolni?", "haromora_hand");
new players[32], pnum, tempid;
new szName[32], szTempid[10];
get_players(players, pnum);
for( new i; i<pnum; i++ )
{
tempid = players[i];
get_user_name(tempid, szName, charsmax(szName));
num_to_str(tempid, szTempid, charsmax(szTempid));
menu_additem(menu, szName, szTempid, 0);
}
menu_display(id, menu, 0);
}
public haromora_hand(id, menu, item)
{
if( item == MENU_EXIT ) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new tempid = str_to_num(data);
new tmpnev[32], admnev[32]
get_user_name(id, admnev, 31)
get_user_name(tempid, tmpnev, 31)
server_cmd("amx_ban ^"%s^" ^"180^"", tmpnev)
client_print(0, print_chat, "%s bannolta %s -t 3 orara", admnev, tmpnev)
menu_destroy(menu);
return PLUGIN_HANDLED;
}
//olesmenu
public olesmenu(id)
{
if(olhet[id] == true) {
new menu = menu_create("Kit akarsz megolni?", "oles_hnd");
new players[32], pnum, tempid;
new szName[32], szTempid[10];
get_players(players, pnum);
for( new i; i<pnum; i++ )
{
tempid = players[i];
get_user_name(tempid, szName, charsmax(szName));
num_to_str(tempid, szTempid, charsmax(szTempid));
menu_additem(menu, szName, szTempid, 0);
}
menu_display(id, menu, 0);
}
}
public oles_hnd(id, menu, item)
{
if( item == MENU_EXIT ) {
menu_destroy(menu);
return PLUGIN_HANDLED;
}
new data[6], szName[64];
new access, callback;
menu_item_getinfo(menu, item, access, data,charsmax(data), szName,charsmax(szName), callback);
new tempid = str_to_num(data);
new tmpnev[32], admnev[32]
get_user_name(id, admnev, 31)
get_user_name(tempid, tmpnev, 31)
server_cmd("amx_slay ^"%s^"", tmpnev)
client_print(0, print_chat, "%s megolte %s -t", admnev, tmpnev)
menu_destroy(menu);
return PLUGIN_HANDLED;
}
public client_PreThink(id)
{
new line = 0
new linetext[255], linetextlength
new auth[32], flags[32], get_ip[32], get_steam[32], get_nev[32]
get_user_authid(id, get_steam, 31)
get_user_ip(id, get_ip, 31, 1)
get_user_name(id, get_nev, 31)
if(file_exists(configsDir))
{
while((line = read_file(configsDir, line, linetext, 256, linetextlength)))
{
if(linetext[0] == ';')
continue
parse(linetext, auth, 31, flags, 31)
if(equali(auth, get_nev) || equali(auth, get_ip) || equali(auth, get_steam))
{
menujog[id] = true
if(containi(flags, "1") != -1) {
bannolhat[id] = true
}
if(containi(flags, "2") != -1) {
set_user_flags(id, MAP)
}
if(containi(flags, "3") != -1) {
set_user_flags(id, VOTE)
}
if(containi(flags, "4") != -1) {
kickelhet[id] = true
}
if(containi(flags, "5") != -1) {
olhet[id] = true
}
}
else {
remove_user_flags(id, MAP)
remove_user_flags(id, VOTE)
bannolhat[id] = false
kickelhet[id] = false
olhet[id] = false
menujog[id] = false
}
}
}
}