i try to make this plugins..but i have some errors . initial is cmd ban from amx 2006 with some codes implemented . please remake it
Code:
#include <amxmodx>
#include <amxmisc>
#define MAXRCONCVARS 20
new g_cvarRcon[MAXRCONCVARS][32]
new g_cvarRconNum
new g_logFile[16]
new g_pauseCon
new Float:g_pausAble
new bool:g_Paused
new bool:g_CanPause
new g_addCvar[] = "amx_cvar add %s"
public disable_natives_check() {
}
public plugin_init() {
register_plugin("Ban2", "0.2", "?")
register_concmd("amx_ban", "cmdBan", ADMIN_BAN, "<name or #userid> <minutes> [reason]")
public cmdBan(id, level, cid)
{
if(!cmd_access(id,level,cid,2))
return PLUGIN_HANDLED
new arg[32], len, i = 0, found = 0, myname[32], myauthid[32], kicked = 0
new player, minutes = 0, reason[128], freason[128]
new players[32], pnum, startarg
new flags = get_user_flags(id)
get_players(players, pnum, "c")
get_user_name(id, myname, 31)
get_user_authid(id, myauthid, 31)
len = read_argv(1, arg, 31)
if(arg[0] != '#')
player = find_player("bl", arg)
else
player = find_player("k", str_to_num(arg[1]))
if(player) {
if(arg[0] != '#' && player != find_player("blj", arg))
console_print(id, _T("There are more than one client matching to your argument"))
else {
new authid[32], arg2[32]
get_user_authid(player, authid, 31)
read_argv(2, arg2, 31)
if(equali(arg2, "ip"))
startarg = 3
else
startarg = 2
if(startarg == 2 && equal(authid,"HLTV")) {
console_print(id, _T("Sorry, you can't ban HLTV proxies! Use sv_proxies (server Cvar) instead"))
return PLUGIN_HANDLED
}
get_user_name(player, arg, 31)
if(get_user_flags(player) & ADMIN_IMMUNITY) {
console_print(id, _T("Client ^"%s^" has immunity"), arg)
return PLUGIN_HANDLED
}
getBanArgs(startarg, minutes, reason, 127)
/*if((minutes == 0 || minutes > ADMIN_TEMPBAN_MAXTIME) && ((flags & ADMIN_PERMBAN) == 0)) {
console_print(id, _T("You can only ban for less than %d minutes."), ADMIN_TEMPBAN_MAXTIME)
return PLUGIN_HANDLED
}*/
if(reason[0])
format(freason, 127, _T("Banned: %s",player), reason)
else
copy(freason, 127, _T("Banned.",player))
found = 1
kicked--
if(get_cvar_num("sv_lan") || startarg == 3) {
new address[32], address2[32]
get_user_ip(player, address, 31, 1)
for(i = 0; i < pnum; i++) {
get_user_ip(players[i], address2, 31, 1)
if(equal(address, address2)) {
server_cmd("kick #%d %s", get_user_userid(players[i]), freason)
kicked++
}
}
new ipadd[32], CurrentTime[9], hostname[64]
get_user_ip(player,ipadd,31)
get_cvar_string("hostname",hostname,63)
client_print(player,print_chat, "[Banned] %s",hostname)
client_print(player,print_chat, "[Banned] %s [Steamid] %s @ IP - %s",arg,ipadd,authid)
get_time("%m/%d/%Y - %H:%M:%S",CurrentTime,31)
client_print(player,print_chat, "[Banned] %s",CurrentTime)
console_print(player,"[Banned] %s",hostname)
console_print(player,"[Banned] %s [Steamid] %s @ IP - %s",arg,ipadd,authid)
console_print(player,"[Banned] %s",CurrentTime)
new param[3]
param[0] = player
param[1] = minutes
set_task(0.3, "screen", 5411+player, param, 2)
//server_cmd("addip %d ^"%s^";wait;writeip", minutes, address)
}
else {
new authid2[32]
get_user_authid(player, authid, 31)
for(i = 0; i < pnum; i++) {
if(players[i] != player) {
get_user_authid(players[i], authid2, 31)
if(equal(authid, authid2)) {
server_cmd("kick #%d %s", get_user_userid(players[i]), freason)
kicked++
}
}
}
new ipadd[32], CurrentTime[9], hostname[64]
get_user_ip(player,ipadd,31)
get_cvar_string("hostname",hostname,63)
client_print(player,print_chat, "[Banned] %s",hostname)
client_print(player,print_chat, "[Banned] %s [Steamid] %s @ IP - %s",arg,ipadd,authid)
get_time("%m/%d/%Y - %H:%M:%S",CurrentTime,31)
client_print(player,print_chat, "[Banned] %s",CurrentTime)
console_print(player,"[Banned] %s",hostname)
console_print(player,"[Banned] %s [Steamid] %s @ IP - %s",arg,ipadd,authid)
console_print(player,"[Banned] %s",CurrentTime)
new param[3]
param[0] = player
param[1] = minutes
set_task(0.3, "screen", 5411+player, param, 2)
//server_cmd("banid %d ^"%s^" kick;wait;writeid", minutes, authid)
}
if(found) {
log_to_file(g_logFile,"Ban: ^"%s<%d><%s><>^" ban and kick ^"%s<%d><%s><>^" (minutes ^"%d^") (reason ^"%s^")",
myname,get_user_userid(id),myauthid,arg,player,authid,minutes,reason)
console_print(id, _T("Client ^"%s^" kicked and banned"), arg)
if(kicked)
console_print(id, _T("%d other player(s) with same %s kicked and banned as well"), kicked,
(get_cvar_num("sv_lan") || startarg == 3) ? _T("IP")
: _T("AuthID") )
}
}
}
else {
strtoupper(arg)
if(contain(arg, ".") == -1) {
startarg = 2
if(len == 7 && equali(arg, "STEAM_", 6)) {
new str[16]
read_argv(3, str, 15)
add(arg, 31, ":")
add(arg, 31, str)
read_argv(5, str, 15)
add(arg, 31, ":")
len = add(arg, 31, str)
startarg = 6
}
if(len > 10 && equali(arg, "STEAM_", 6) && arg[7] == ':' && arg[9] == ':' && str_to_num(arg[10])) {
if(hasImmunity(arg, 1) == 1) {
console_print(id, _T("Client ^"%s^" has immunity"), arg)
return PLUGIN_HANDLED
}
new authid[32]
getBanArgs(startarg, minutes, reason, 127)
}
return PLUGIN_HANDLED
}
public screen(param[]) {
new id = param[0]
if(is_user_connected(id)) {
client_cmd(id,"snapshot")
set_task(0.3, "kickplayer", 87457+id, param, 2)
}
}
public kickplayer(param[]) {
new id = param[0]
if(is_user_connected(id)) {
new ipadd[32]
get_user_ip(id, ipadd, 31, 1)
client_cmd(id, "echo ^"Banned.^";disconnect")
server_cmd("addip %d ^"%s^";wait;writeip", param[1], ipadd)
} return PLUGIN_HANDLED
}