Amx_IP plugin
Posted: 29 Jul 2012, 12:18
by smileye
As dori sa im scoateti amx_ip din baza pluginului admincmd sa faceti doar pluginul amx_ip,sa aiba 2 cvaruri de vizualizare a ip-urilor playerilor ( amx_showip si amx_ip ) si sa apara legate fara spatii intre ele ca in poza:
http://uploadimage.ro/images/68570180968888496231.jpg
http://uploadimage.ro/images/68570180968888496231.jpg
- | Afiseaza codul
#include < amxmodx > #include < amxmisc > #define MAXRCONCVARS 16 // Last Maps #define HartiMaxime 5 new NumeHarti[HartiMaxime][34] //end of last maps //LastIP #define STR_LEN 32 enum _:Infos { gUserIp[STR_LEN], gUserName[STR_LEN] } //end of lastip new gLastUsers[5][Infos]; new g_cvarRcon[MAXRCONCVARS][32] new g_cvarRconNum new g_pauseCon new Float:g_pausAble new bool:g_Paused new bool:g_PauseAllowed = false new g_addCvar[] = "amx_cvar add %s" public plugin_init() { register_plugin("Admin Commands", AMXX_VERSION_STR, "SATANA"); register_dictionary("admincmd.txt"); register_dictionary("common.txt"); register_concmd("amx_kick", "cmdKick", ADMIN_KICK, "<name or #userid> [reason]"); register_concmd("amx_ban", "cmdBan", ADMIN_BAN, "<name or #userid> <minutes> [reason]"); register_concmd("amx_banip", "cmdBanIP", ADMIN_BAN, "<name or #userid> <minutes> [reason]"); register_concmd("amx_addban", "cmdAddBan", ADMIN_RCON, "<authid or ip> <minutes> [reason]"); register_concmd("amx_unban", "cmdUnban", ADMIN_BAN, "<authid or ip>"); register_concmd("amx_slay", "cmdSlay", ADMIN_SLAY, "<name or #userid>"); register_concmd("amx_slap", "cmdSlap", ADMIN_SLAY, "<name or #userid> [power]"); register_concmd("amx_leave", "cmdLeave", ADMIN_KICK, "<tag> [tag] [tag] [tag]"); register_concmd("amx_pause", "cmdPause", ADMIN_CVAR, "- pause or unpause the game"); register_concmd("amx_who", "cmdWho", ADMIN_ADMIN, "- displays who is on server"); register_concmd("amx_cvar", "cmdCvar", ADMIN_CVAR, "<cvar> [value]"); register_concmd("amx_plugins", "cmdPlugins", ADMIN_ADMIN); register_concmd("amx_modules", "cmdModules", ADMIN_ADMIN); register_concmd("amx_map", "cmdMap", ADMIN_MAP, "<mapname>"); register_concmd("amx_cfg", "cmdCfg", ADMIN_CFG, "<filename>"); register_concmd("amx_nick", "cmdNick", ADMIN_SLAY, "<name or #userid> <new nick>"); register_clcmd("amx_rcon", "cmdRcon", ADMIN_RCON, "<command line>"); register_clcmd("amx_showrcon", "cmdShowRcon", ADMIN_RCON, "<command line>"); register_clcmd("pauseAck", "cmdLBack"); register_concmd("amx_lastip", "cmdLastIp", ADMIN_KICK, ""); register_concmd("amx_showip", "cmdshowip", ADMIN_KICK, ""); register_clcmd("say /harti", "HartiJucateCuSay"); register_concmd("amx_last", "cmdLastIp", ADMIN_KICK, ""); register_concmd("amx_ip", "cmdshowip", ADMIN_KICK, ""); register_clcmd("say /maps", "HartiJucateCuSay"); } public plugin_cfg() { // Cvars which can be changed only with rcon access server_cmd(g_addCvar, "rcon_password") server_cmd(g_addCvar, "amx_show_activity") server_cmd(g_addCvar, "amx_mode") server_cmd(g_addCvar, "amx_password_field") server_cmd(g_addCvar, "amx_default_access") server_cmd(g_addCvar, "amx_reserved_slots") server_cmd(g_addCvar, "amx_reservation") server_cmd(g_addCvar, "amx_conmotd_file") //Last Maps new FisierHartiJucate[64] get_localinfo("amxx_configsdir", FisierHartiJucate, 63) format(FisierHartiJucate, 63, "%s/hartianterioare.txt", FisierHartiJucate) new Fisier = fopen(FisierHartiJucate, "rt") new i new Temporar[34] if(Fisier) { for(i=0; i<HartiMaxime; i++) { if(!feof(Fisier)) { fgets(Fisier, Temporar, 33) replace(Temporar, 33, "^n", "") formatex(NumeHarti, 33, Temporar) } } fclose(Fisier) } delete_file(FisierHartiJucate) new CurrentMap[34] get_mapname(CurrentMap, 33) Fisier = fopen(FisierHartiJucate, "wt") if(Fisier) { formatex(Temporar, 33, "%s^n", CurrentMap) fputs(Fisier, Temporar) for(i=0; i<HartiMaxime-1; i++) { CurrentMap = NumeHarti if(!CurrentMap[0]) break formatex(Temporar, 33, "%s^n", CurrentMap) fputs(Fisier, Temporar) } fclose(Fisier) } //end of last maps } public cmdKick(id, level, cid) { if (!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED new arg[32] read_argv(1, arg, 31) new player = cmd_target(id, arg, 1) if (!player) return PLUGIN_HANDLED new authid[32], authid2[32], name2[32], name[32], userid2, reason[32] get_user_authid(id, authid, 31) get_user_authid(player, authid2, 31) get_user_name(player, name2, 31) get_user_name(id, name, 31) userid2 = get_user_userid(player) read_argv(2, reason, 31) remove_quotes(reason) log_amx("Kick: ^"%s<%d><%s><>^" kick ^"%s<%d><%s><>^" (reason ^"%s^")", name, get_user_userid(id), authid, name2, userid2, authid2, reason) switch (get_cvar_num("amx_show_activity")) { case 2: chat_color(0,"%L", LANG_PLAYER, "ADMIN_KICK_2", name, name2) case 1: chat_color(0,"%L", LANG_PLAYER, "ADMIN_KICK_1", name2) } if (is_user_bot(player)) server_cmd("kick #%d", userid2) else { if (reason[0]) server_cmd("kick #%d ^"%s^"", userid2, reason) else server_cmd("kick #%d", userid2) } console_print(id, "[AMXX] Client ^"%s^" kicked", name2) return PLUGIN_HANDLED } public cmdUnban(id, level, cid) { if (!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED new arg[32], authid[32], name[32] read_argv(1, arg, 31) if (contain(arg, ".") != -1) { server_cmd("removeip ^"%s^";writeip", arg) console_print(id, "[AMXX] %L", id, "IP_REMOVED", arg) } else { server_cmd("removeid %s;writeid", arg) console_print(id, "[AMXX] %L", id, "AUTHID_REMOVED", arg) } get_user_name(id, name, 31) switch (get_cvar_num("amx_show_activity")) { case 2: chat_color(0,"%L", LANG_PLAYER, "ADMIN_UNBAN_2", name, arg) case 1: chat_color(0,"%L", LANG_PLAYER, "ADMIN_UNBAN_1", arg) } get_user_authid(id, authid, 31) log_amx("Cmd: ^"%s<%d><%s><>^" unban ^"%s^"", name, get_user_userid(id), authid, arg) return PLUGIN_HANDLED } public cmdAddBan(id, level, cid) { if (!cmd_access(id, level, cid, 3)) return PLUGIN_HANDLED new arg[32], authid[32], name[32], minutes[32], reason[32] read_argv(1, arg, 31) read_argv(2, minutes, 31) read_argv(3, reason, 31) if (contain(arg, ".") != -1) { server_cmd("addip ^"%s^" ^"%s^";wait;writeip", minutes, arg) console_print(id, "[AMXX] Ip ^"%s^" added to ban list", arg) } else { server_cmd("banid ^"%s^" ^"%s^";wait;writeid", minutes, arg) console_print(id, "[AMXX] Authid ^"%s^" added to ban list", arg) } get_user_name(id, name, 31) switch (get_cvar_num("amx_show_activity")) { case 2: chat_color(0,"%L", LANG_PLAYER, "ADMIN_ADDBAN_2", name, arg) case 1: chat_color(0,"%L", LANG_PLAYER, "ADMIN_ADDBAN_1", arg) } get_user_authid(id, authid, 31) log_amx("Cmd: ^"%s<%d><%s><>^" ban ^"%s^" (minutes ^"%s^") (reason ^"%s^")", name, get_user_userid(id), authid, arg, minutes, reason) return PLUGIN_HANDLED } public cmdBan(id, level, cid) { if (!cmd_access(id, level, cid, 3)) return PLUGIN_HANDLED new target[32], minutes[8], reason[64] read_argv(1, target, 31) read_argv(2, minutes, 7) read_argv(3, reason, 63) new player = cmd_target(id, target, 9) if (!player) return PLUGIN_HANDLED new authid[32], name2[32], authid2[32], name[32] new userid2 = get_user_userid(player) get_user_authid(player, authid2, 31) get_user_authid(id, authid, 31) get_user_name(player, name2, 31) get_user_name(id, name, 31) new temp[64], banned[16], nNum = str_to_num(minutes) if (nNum) format(temp, 63, "Ai primit ban pentru %s minute", minutes) else format(temp, 63, "Ai primit ban permanent Permanent", player, "PERM") format(banned, 15, "", player, "BANNED") new address[32] get_user_ip(player, address, 31, 1) if (reason[0]) server_cmd("kick #%d ^"%s (%s %s)^";wait;addip ^"%s^" ^"%s^";wait;writeip", userid2, reason, banned, temp, minutes, address) else server_cmd("kick #%d ^"%s %s^";wait;addip ^"%s^" ^"%s^";wait;writeip", userid2, banned, temp, minutes, address) new pl[32]; get_user_name(player, pl, 31) chat_color(0,"!yADMIN!g %s!y: ban!g %s!y pentru!g %s!y minute. Motiv:!g ( %s )", name, pl, minutes, reason) client_cmd(player, "wait;snapshot;wait"); new activity = get_cvar_num("amx_show_activity") if (activity != 0) { } console_print(id, "Jucatorul %s a fost banat", name2) return PLUGIN_HANDLED } public cmdBanIP(id, level, cid) { if (!cmd_access(id, level, cid, 3)) return PLUGIN_HANDLED new target[32], minutes[8], reason[64] read_argv(1, target, 31) read_argv(2, minutes, 7) read_argv(3, reason, 63) new player = cmd_target(id, target, 9) if (!player) return PLUGIN_HANDLED new authid[32], name2[32], authid2[32], name[32] new userid2 = get_user_userid(player) get_user_authid(player, authid2, 31) get_user_authid(id, authid, 31) get_user_name(player, name2, 31) get_user_name(id, name, 31) new temp[64], banned[16], nNum = str_to_num(minutes) if (nNum) format(temp, 63, "Ai primit ban pentru %s minute", minutes) else format(temp, 63, "Ai primit ban permanent", player, "PERM") format(banned, 15, "", player, "BANNED") new address[32] get_user_ip(player, address, 31, 1) if (reason[0]) server_cmd("kick #%d ^"%s (%s %s)^";wait;addip ^"%s^" ^"%s^";wait;writeip", userid2, reason, banned, temp, minutes, address) else server_cmd("kick #%d ^"%s %s^";wait;addip ^"%s^" ^"%s^";wait;writeip", userid2, banned, temp, minutes, address) new pl[32]; get_user_name(player, pl, 31) chat_color(0,"!yADMIN!g %s!y: banip!g %s!y pentru!g %s!y minute. Motiv:!g ( %s )", name, pl, minutes, reason) client_cmd(player, "wait;snapshot;wait"); new activity = get_cvar_num("amx_show_activity") if (activity != 0) { } console_print(id, "JucaTorul %s a FosT banaT!", name2) return PLUGIN_HANDLED } public cmdSlay(id, level, cid) { if (!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED new arg[32] read_argv(1, arg, 31) new player = cmd_target(id, arg, 5) if (!player) return PLUGIN_HANDLED user_kill(player) new authid[32], name2[32], authid2[32], name[32] get_user_authid(id, authid, 31) get_user_name(id, name, 31) get_user_authid(player, authid2, 31) get_user_name(player, name2, 31) log_amx("Cmd: ^"%s<%d><%s><>^" slay ^"%s<%d><%s><>^"", name, get_user_userid(id), authid, name2, get_user_userid(player), authid2) switch (get_cvar_num("amx_show_activity")) { case 2: chat_color(0,"%L", LANG_PLAYER, "ADMIN_SLAY_2", name, name2) case 1: chat_color(0,"%L", LANG_PLAYER, "ADMIN_SLAY_1", name2) } console_print(id, "[AMXX] %L", id, "CLIENT_SLAYED", name2) return PLUGIN_HANDLED } public cmdSlap(id, level, cid) { if (!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED new arg[32] read_argv(1, arg, 31) new player = cmd_target(id, arg, 5) if (!player) return PLUGIN_HANDLED new spower[32], authid[32], name2[32], authid2[32], name[32] read_argv(2, spower, 31) new damage = str_to_num(spower) user_slap(player, damage) get_user_authid(id, authid, 31) get_user_name(id, name, 31) get_user_authid(player, authid2, 31) get_user_name(player, name2, 31) log_amx("Cmd: ^"%s<%d><%s><>^" slap with %d damage ^"%s<%d><%s><>^"", name, get_user_userid(id), authid, damage, name2, get_user_userid(player), authid2) switch (get_cvar_num("amx_show_activity")) { case 2: chat_color(0,"%L", LANG_PLAYER, "ADMIN_SLAP_2", name, name2, damage) case 1: chat_color(0,"%L", LANG_PLAYER, "ADMIN_SLAP_1", name2, damage) } console_print(id, "[AMXX] %L", id, "CLIENT_SLAPED", name2, damage) return PLUGIN_HANDLED } public chMap(map[]) { server_cmd("changelevel %s", map) } public cmdMap(id, level, cid) { if (!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED new arg[32] new arglen = read_argv(1, arg, 31) if (!is_map_valid(arg)) { console_print(id, "[AMXX] %L", id, "MAP_NOT_FOUND") return PLUGIN_HANDLED } new authid[32], name[32] get_user_authid(id, authid, 31) get_user_name(id, name, 31) switch (get_cvar_num("amx_show_activity")) { case 2: chat_color(0,"%L", LANG_PLAYER, "ADMIN_MAP_2", name, arg) case 1: chat_color(0,"%L", LANG_PLAYER, "ADMIN_MAP_1", arg) } log_amx("Cmd: ^"%s<%d><%s><>^" changelevel ^"%s^"", name, get_user_userid(id), authid, arg) new _modName[10] get_modname(_modName, 9) if (!equal(_modName, "zp")) { message_begin(MSG_ALL, SVC_INTERMISSION) message_end() } set_task(2.0, "chMap", 0, arg, arglen + 1) return PLUGIN_HANDLED } onlyRcon(name[]) { for (new a = 0; a < g_cvarRconNum; ++a) if (equali(g_cvarRcon[a], name)) return 1 return 0 } public cmdCvar(id, level, cid) { if (!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED new arg[32], arg2[64] read_argv(1, arg, 31) read_argv(2, arg2, 63) if (equal(arg, "add") && (get_user_flags(id) & ADMIN_RCON)) { if (cvar_exists(arg2)) { if (g_cvarRconNum < MAXRCONCVARS) copy(g_cvarRcon[g_cvarRconNum++], 31, arg2) else console_print(id, "[AMXX] %L", id, "NO_MORE_CVARS") } return PLUGIN_HANDLED } if (!cvar_exists(arg)) { console_print(id, "[AMXX] %L", id, "UNKNOWN_CVAR", arg) return PLUGIN_HANDLED } if (onlyRcon(arg) && !(get_user_flags(id) & ADMIN_RCON)) { console_print(id, "[AMXX] %L", id, "CVAR_NO_ACC") return PLUGIN_HANDLED } else if (equal(arg, "sv_password") && !(get_user_flags(id) & ADMIN_PASSWORD)) { console_print(id, "[AMXX] %L", id, "CVAR_NO_ACC") return PLUGIN_HANDLED } if (read_argc() < 3) { get_cvar_string(arg, arg2, 63) console_print(id, "[AMXX] %L", id, "CVAR_IS", arg, arg2) return PLUGIN_HANDLED } new authid[32], name[32] get_user_authid(id, authid, 31) get_user_name(id, name, 31) log_amx("Cmd: ^"%s<%d><%s><>^" set cvar (name ^"%s^") (value ^"%s^")", name, get_user_userid(id), authid, arg, arg2) set_cvar_string(arg, arg2) new activity = get_cvar_num("amx_show_activity") if (activity != 0) { new players[32], pnum, admin[64], cvar_val[64], len get_players(players, pnum, "c") for (new i = 0; i < pnum; i++) { len = format(admin, 255, "%L", players, "ADMIN") if (activity == 1) len += copy(admin[len], 255-len, ":") else len += format(admin[len], 255-len, " %s:", name) if (equal(arg, "rcon_password") || equal(arg, "sv_password")) format(cvar_val, 63, "*** %L ***", players, "PROTECTED") else copy(cvar_val, 63, arg2) chat_color(players,"%L", players, "SET_CVAR_TO", name, arg, arg2) } } console_print(id, "[AMXX] %L", id, "CVAR_CHANGED", arg, arg2) return PLUGIN_HANDLED } public cmdPlugins(id, level, cid) { if (!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED new name[32], version[32], author[32], filename[32], status[32] new lName[32], lVersion[32], lAuthor[32], lFile[32], lStatus[32] format(lName, 31, "%L", id, "NAME") format(lVersion, 31, "%L", id, "VERSION") format(lAuthor, 31, "%L", id, "AUTHOR") format(lFile, 31, "%L", id, "FILE") format(lStatus, 31, "%L", id, "STATUS") new num = get_pluginsnum() new running = 0 console_print(id, "%L:", id, "LOADED_PLUGINS") console_print(id, "%-18.17s %-8.7s %-17.16s %-16.15s %-9.8s", lName, lVersion, lAuthor, lFile, lStatus) for (new i = 0; i <num; i++) { get_plugin(i, filename, 31, name, 31, version, 31, author, 31, status, 31) console_print(id, "%-18.17s %-8.7s %-17.16s %-16.15s %-9.8s", name, version, author, filename, status) if (status[0]=='d' || status[0]=='r') // "debug" or "running" running++ } console_print(id, "%L", id, "PLUGINS_RUN", num, running) return PLUGIN_HANDLED } public cmdModules(id, level, cid) { if (!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED new name[32], version[32], author[32], status, sStatus[16] new lName[32], lVersion[32], lAuthor[32] format(lName, 31, "%L", id, "NAME") format(lVersion, 31, "%L", id, "VERSION") format(lAuthor, 31, "%L", id, "AUTHOR") new num = get_modulesnum() console_print(id, "%L:", id, "LOADED_MODULES") console_print(id, "%-23.22s %-8.7s %-20.19s", lName, lVersion, lAuthor) for (new i = 0; i < num; i++) { get_module(i, name, 31, author, 31, version, 31, status) switch (status) { case module_loaded: copy(sStatus, 15, "running") default: copy(sStatus, 15, "error") } console_print(id, "%-23.22s %-8.7s %-20.19s", name, version, author) } console_print(id, "%L", id, "NUM_MODULES", num) return PLUGIN_HANDLED } public cmdCfg(id, level, cid) { if (!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED new arg[128] read_argv(1, arg, 127) if (!file_exists(arg)) { console_print(id, "[AMXX] %L", id, "FILE_NOT_FOUND", arg) return PLUGIN_HANDLED } new authid[32], name[32] get_user_authid(id, authid, 31) get_user_name(id, name, 31) log_amx("Cmd: ^"%s<%d><%s><>^" execute cfg (file ^"%s^")", name, get_user_userid(id), authid, arg) console_print(id, "[AMXX] Executing file ^"%s^"", arg) server_cmd("exec %s", arg) switch(get_cvar_num("amx_show_activity")) { case 2: chat_color(0,"%L", LANG_PLAYER, "ADMIN_CONF_2", name, arg) case 1: chat_color(0,"%L", LANG_PLAYER, "ADMIN_CONF_1", arg) } return PLUGIN_HANDLED } public cmdLBack() { if (!g_PauseAllowed) return PLUGIN_CONTINUE new paused[25] format(paused, 24, "%L", g_pauseCon, g_Paused ? "UNPAUSED" : "PAUSED") set_cvar_float("pausable", g_pausAble) console_print(g_pauseCon, "[AMXX] Server %s", paused) g_PauseAllowed = false if (g_Paused) g_Paused = false else g_Paused = true return PLUGIN_HANDLED } public cmdPause(id, level, cid) { if (!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED new authid[32], name[32], slayer = id get_user_authid(id, authid, 31) get_user_name(id, name, 31) g_pausAble = get_cvar_float("pausable") if (!slayer) slayer = find_player("h") if (!slayer) { console_print(id, "[AMXX] %L", id, "UNABLE_PAUSE") return PLUGIN_HANDLED } set_cvar_float("pausable", 1.0) g_PauseAllowed = true client_cmd(slayer, "pause;pauseAck") log_amx("Cmd: ^"%s<%d><%s><>^" %s server", name, get_user_userid(id), authid, g_Paused ? "unpause" : "pause") console_print(id, "[AMXX] %L", id, g_Paused ? "UNPAUSING" : "PAUSING") new activity = get_cvar_num("amx_show_activity") if (activity != 0) { new players[32], pnum, msg[128], len get_players(players, pnum, "c") for (new i = 0; i < pnum; i++) { len = format(msg, 127, "%L", players, "ADMIN") if (activity == 1) len += copy(msg[len], 127-len, ": ") else len += format(msg[len], 127-len, " %s: ", name) format(msg[len], 127-len, "%L", players, g_Paused ? "UNPAUSE" : "PAUSE") client_print(players, print_chat, "%s server", msg) } } g_pauseCon = id return PLUGIN_HANDLED } public cmdShowRcon(id, level, cid) { if (!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED new password[64] get_cvar_string("rcon_password", password, 63) if (!password[0]) { cmdRcon(id, level, cid) } else { new args[128] read_args(args, 127) client_cmd(id, "rcon_password %s", password) client_cmd(id, "rcon %s", args) } return PLUGIN_HANDLED } public cmdRcon(id, level, cid) { if (!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED new arg[128], authid[32], name[32] read_args(arg, 127) get_user_authid(id, authid, 31) get_user_name(id, name, 31) log_amx("Cmd: ^"%s<%d><%s><>^" server console (cmdline ^"%s^")", name, get_user_userid(id), authid, arg) console_print(id, "[AMXX] %L", id, "COM_SENT_SERVER", arg) server_cmd("%s", arg) return PLUGIN_HANDLED } public cmdWho(id, level, cid) { if (!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED new players[32], inum, cl_on_server[64], authid[32], name[32], flags, sflags[32] new lImm[16], lRes[16], lAccess[16], lYes[16], lNo[16] format(lImm, 15, "%L", id, "IMMU") format(lRes, 15, "%L", id, "RESERV") format(lAccess, 15, "%L", id, "ACCESS") format(lYes, 15, "%L", id, "YES") format(lNo, 15, "%L", id, "NO") get_players(players, inum) format(cl_on_server, 63, "%L", id, "CLIENTS_ON_SERVER") console_print(id, "^n%s:^n # %-16.15s %-20s %-8s %-4.3s %-4.3s %s", cl_on_server, "nick", "authid", "userid", lImm, lRes, lAccess) for (new a = 0; a < inum; ++a) { get_user_authid(players[a], authid, 31) get_user_name(players[a], name, 31) flags = get_user_flags(players[a]) get_flags(flags, sflags, 31) console_print(id, "%2d %-16.15s %-20s %-8d %-6.5s %-6.5s %s", players[a], name, authid, get_user_userid(players[a]), (flags&ADMIN_IMMUNITY) ? lYes : lNo, (flags&ADMIN_RESERVATION) ? lYes : lNo, sflags) } console_print(id, "%L", id, "TOTAL_NUM", inum) get_user_authid(id, authid, 31) get_user_name(id, name, 31) log_amx("Cmd: ^"%s<%d><%s><>^" ask for players list", name, get_user_userid(id), authid) return PLUGIN_HANDLED } hasTag(name[], tags[4][32], tagsNum) { for (new a = 0; a < tagsNum; ++a) if (contain(name, tags[a]) != -1) return a return -1 } public cmdLeave(id, level, cid) { if (!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED new argnum = read_argc() new ltags[4][32] new ltagsnum = 0 for (new a = 1; a < 5; ++a) { if (a < argnum) read_argv(a, ltags[ltagsnum++], 31) else ltags[ltagsnum++][0] = 0 } new nick[32], ires, pnum = get_maxplayers() + 1, count = 0, lReason[128] for (new b = 1; b < pnum; ++b) { if (!is_user_connected(b) && !is_user_connecting(b)) continue get_user_name(b, nick, 31) ires = hasTag(nick, ltags, ltagsnum) if (ires != -1) { console_print(id, "[AMXX] %L", id, "SKIP_MATCH", nick, ltags[ires]) continue } if (get_user_flags(b) & ADMIN_IMMUNITY) { console_print(id, "[AMXX] %L", id, "SKIP_IMM", nick) continue } console_print(id, "[AMXX] %L", id, "KICK_PL", nick) if (is_user_bot(b)) server_cmd("kick #%d", get_user_userid(b)) else { format(lReason, 127, "%L", b, "YOU_DROPPED") server_cmd("kick #%d ^"%s^"", get_user_userid(b), lReason) } count++ } console_print(id, "[AMXX] %L", id, "KICKED_CLIENTS", count) new authid[32], name[32] get_user_authid(id, authid, 31) get_user_name(id, name, 31) log_amx("Kick: ^"%s<%d><%s><>^" leave some group (tag1 ^"%s^") (tag2 ^"%s^") (tag3 ^"%s^") (tag4 ^"%s^")", name, get_user_userid(id), authid, ltags[0], ltags[1], ltags[2], ltags[3]) switch(get_cvar_num("amx_show_activity")) { case 2: chat_color(0,"%L", LANG_PLAYER, "ADMIN_LEAVE_2", name, ltags[0], ltags[1], ltags[2], ltags[3]) case 1: chat_color(0,"%L", LANG_PLAYER, "ADMIN_LEAVE_1", ltags[0], ltags[1], ltags[2], ltags[3]) } return PLUGIN_HANDLED } public cmdNick(id, level, cid) { if (!cmd_access(id, level, cid, 3)) return PLUGIN_HANDLED new arg1[32], arg2[32], authid[32], name[32], authid2[32], name2[32] read_argv(1, arg1, 31) read_argv(2, arg2, 31) new player = cmd_target(id, arg1, 1) if (!player) return PLUGIN_HANDLED get_user_authid(id, authid, 31) get_user_name(id, name, 31) get_user_authid(player, authid2, 31) get_user_name(player, name2, 31) client_cmd(player, "name ^"%s^"", arg2) log_amx("Cmd: ^"%s<%d><%s><>^" change nick to ^"%s^" ^"%s<%d><%s><>^"", name, get_user_userid(id), authid, arg2, name2, get_user_userid(player), authid2) switch (get_cvar_num("amx_show_activity")) { case 2: chat_color(0,"%L", LANG_PLAYER, "ADMIN_NICK_2", name, name2, arg2) case 1: chat_color(0,"%L", LANG_PLAYER, "ADMIN_NICK_1", name2, arg2) } console_print(id, "[AMXX] %L", id, "CHANGED_NICK", name2, arg2) return PLUGIN_HANDLED } public cmdLastIp(id,level,cid) { if ( ! cmd_access ( id , level , cid , 1 ) ) return PLUGIN_HANDLED if(!gLastUsers[0][gUserName][0]) { client_print(id,3,"Inca nu a iesit nici un jucator de pe server!"); return 1; } for(new i = 0;i < 5;i++) { if(!gLastUsers[gUserName][0] || ! gLastUsers[i][gUserIp][0]) continue; console_print(id,"%s - %s",gLastUsers[i][gUserName], gLastUsers[i][gUserIp]); } return 1; } public client_disconnect(id) { static sName[32]; get_user_name(id,sName,sizeof sName - 1); for(new i = 0;i < sizeof gLastUsers;i++) { if(equali(gLastUsers[i][gUserName],sName)) return 1; } static iNum; get_user_name(id,gLastUsers[iNum][gUserName],STR_LEN - 1); get_user_ip(id,gLastUsers[iNum][gUserIp],STR_LEN - 1, 1); iNum++; if(iNum >= 5) iNum = 0; return 0; } public cmdshowip(id, level, cid) { if (!cmd_access(id, level, cid, 1)) { return PLUGIN_HANDLED; } console_print(id,"-----------------------------------"); console_print(id,"-> ShowIP Plugin <-"); console_print(id,"-----------------------------------"); console_print(id,"=> Imprimam IP-urile Jucatorilor <="); console_print(id," "); new players[32], num; get_players(players, num); for(new i = 0 ; i < num ; i++) { new name[32], ip[32]; get_user_name(players[i], name, 31) get_user_ip(players[i], ip, 31, 1); if(strlen(name) > 20) { copy(name,17,name); add(name,64,"..."); } console_print(id, "%d) %s - %s^n",i+1, name, ip); } console_print(id," "); console_print(id,"-----------------------------------"); console_print(id,"-> ShowIP Plugin <-"); console_print(id,"-----------------------------------"); return PLUGIN_HANDLED; } public HartiJucateCuSay(id) { new HartiAnterioare[192], n n += formatex(HartiAnterioare[n], 191-n, "Hartile jucate anterior sunt:") for(new i; i<HartiMaxime; i++) { if(!NumeHarti[i][0]) { n += formatex(HartiAnterioare[n-1], 191-n+1, ".") break } n += formatex(HartiAnterioare[n], 191-n, " %s%s", NumeHarti[i], i+1 == HartiMaxime ? "." : ",") } client_print(id, print_chat, HartiAnterioare) return PLUGIN_CONTINUE } stock chat_color(const id, const input[], any:...) { new count = 1, players[32] static msg[191] vformat(msg, 190, input, 3) replace_all(msg, 190, "!g", "^4") replace_all(msg, 190, "!y", "^1") replace_all(msg, 190, "!team", "^3") if (id) players[0] = id; else get_players(players, count, "ch") { for (new i = 0; i < count; i++) { if (is_user_connected(players[i])) { message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]) write_byte(players[i]); write_string(msg); message_end(); } } } }