Może komuś się przyda, tu jest mój stary plugin który działa na takiej zasadzie jakiej chce autor tematu (dostał go już na
PW)
/* Script generated by Pawn Studio */
#include <amxmodx>
new const powody[][] = {
"Cheat", "Mikro ...", "Ogarnij sie", "Japa..."
}
new const strona[] = "http://amxx.pl";
new const tag[] = "[RK]"
new g_kogo[33];
new last[33][128];
public plugin_init() {
register_plugin("Reason Kicker", "1.0", "byCZEK");
register_clcmd("amx_kickmenu", "cmdKickMenu", ADMIN_KICK);
register_clcmd("amx_custom", "cmdWlasnyPowod", ADMIN_KICK);
}
public cmdKickMenu(id) {
if(get_user_flags(id) & ADMIN_KICK) {
MenuKickow(id);
}
return PLUGIN_HANDLED;
}
public cmdWlasnyPowod(id) {
new s[128];
read_args(s, 127);
replace_all(s, 127, "^"", "");
copy(last[id], 127, s);
Kick(id, s);
return PLUGIN_HANDLED;
}
public MenuKickow(id) {
new players[32], name[33], temp[2][128], num, pl;
get_players(players, num);
new m = menu_create("Lista Graczy", "MenuKickow_");
for(new i = 0; i < num; i++) {
pl = players[i];
get_user_name(pl, name, 32);
num_to_str(pl, temp[0], 3);
formatex(temp[1], 127, "%s%s", name, (get_user_flags(pl) & ADMIN_KICK) ? "\r *" : "");
menu_additem(m, temp[1], temp[0], _, menu_makecallback("MenuKickow_c"));
}
menu_display(id, m);
}
public MenuKickow_(id, menu, item) {
if(item == MENU_EXIT) {
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
new data[6], iName[64], access, callback;
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
new pl = str_to_num(data);
g_kogo[id] = pl;
MenuPowodow(id);
return PLUGIN_CONTINUE;
}
public MenuKickow_c(id, menu, item) {
new data[6], iName[64], access, callback;
menu_item_getinfo(menu, item, access, data,5, iName, 63, callback);
new pl = str_to_num(data);
if(get_user_flags(pl) & ADMIN_IMMUNITY || pl == id)
return ITEM_DISABLED;
return ITEM_ENABLED;
}
public MenuPowodow(id) {
new m = menu_create("Powody", "MenuPowodow_");
for(new i = 0; i < sizeof(powody); i++) {
menu_additem(m , powody[i]);
}
menu_addblank(m, 0);
menu_additem(m, "Wlasny powod");
if(last[id][0] != '^0') {
new temp[140]; formatex(temp, 139, "/y %s", last[id]);
menu_additem(m, temp);
}
menu_display(id, m);
}
public MenuPowodow_(id, menu, item) {
if(item == MENU_EXIT || !g_kogo[id]) {
menu_destroy(menu);
return PLUGIN_CONTINUE;
}
new m = sizeof(powody);
if(item == m) client_cmd(id, "messagemode amx_custom");
else if(item == m+1) Kick(id, last[id]);
else Kick(id, powody[item]);
return PLUGIN_CONTINUE;
}
public Kick(id, const powod[]) {
if(!g_kogo[id]) {
client_print(id, print_chat, "%s Nie ma wszystkich danych", tag);
return;
}
new pl = g_kogo[id];
new name[2][33];
get_user_name(id, name[0], 32);
get_user_name(pl, name[1], 32);
set_hudmessage(0, 255, 0, 0.05, 0.35, 0, 6.0, 5.0, 0.5, 0.15, 7);
show_hudmessage(0, "Gracz o nicku %s ^nZostal wywalony przez %s ^nPowod: %s", name[1], name[0], powod);
client_print(pl, print_console, "%s ==========================================", tag);
client_print(pl, print_console, "%s Zostales wykopany przez %s", tag, name[0]);
client_print(pl, print_console, "%s Powod: ^"%s^"", tag, powod);
client_print(pl, print_console, "%s Jezeli uwazasz, ze kick byl bezpodstawny zglos to na %s", tag, strona);
client_print(pl, print_console, "%s Pozdro od autora (byCZEK)", tag);
client_print(pl, print_console, "%s ==========================================", tag);
server_cmd("kick #%d ^"%s^"", get_user_userid(pl), powod);
}