13.04.2017, 23:33
Quiero hacer un comando que banie la ip por medio del nick o id del jugador, uso Sqlite... y no se me ocurre como hacer el comando
espero su ayuda!

espero su ayuda!

|
Creo que ese solo banea nombres, Nesecito una de ip's igual serнa un if en onplayerconnect que diga si la ip esta ban no?
|
CMD:ban(playerid, params[])
{
if(PlayerInfo[playerid][Level] < 6)
return SendClientMessage(playerid,red,"[ERROR]: {FFFFFF}No tienes autorizaciуn.");
new string[128], id, reason[128], when[128],
ban_hr, ban_min, ban_sec, ban_month, ban_days, ban_years;
gettime(ban_hr, ban_min, ban_sec);
getdate(ban_years, ban_month, ban_days);
if(sscanf(params, "uS(sin razуn)[128]", id, reason)) return SendClientMessage(playerid, red, "[ERROR]: {FFFFFF}Uso /ban [playerid] [razуn]");
if(id == INVALID_PLAYER_ID) return SendClientMessage(playerid, red, "[ERROR]: {FFFFFF}Jugador no conectado.");
if(id == playerid) return SendClientMessage(playerid, red, "[ERROR]: {FFFFFF}No puedes usar el comando en ti mismo.");
if(PlayerInfo[playerid][Level] < PlayerInfo[id][Level]) return SendClientMessage(playerid, red, "[ERROR]: {FFFFFF}No puedes usar este comando en un administrador.");
format(when, 128, "%02d/%02d/%d %02d:%02d:%02d", ban_month, ban_days, ban_years, ban_hr, ban_min, ban_sec);
CMDMessageToAdmins(playerid,"BAN");
format(string, sizeof(string), "*{DF0000}Administrador %s baneу a %s (razуn: %s)", pName(playerid), pName(id), reason);
SendClientMessageToAll(grey, string);
printf(string);
#if LOG == true
SaveLog("banlog.txt", string);
#endif
format(string, sizeof(string), "Baneaste a %s por la razon de: %s.", pName(id), reason);
SendClientMessage(playerid, COLOR_YELLOW, string);
format(string, sizeof(string), "Tъ fuiste baneado por el administrador %s (Razуn: %s)", pName(playerid), reason);
SendClientMessage(id, COLOR_YELLOW, string);
BanAccount(id, pName(playerid), reason);
ShowBan(id, pName(playerid), reason, when);
KickEx(id);
return 1;
}
stock BanAccountEx(name[], ip[], admin[] = "gg", reason[] = "N/a")
{
new
Query[500],
DBResult:result,
ban_hr, ban_min, ban_sec, ban_month, ban_days, ban_years, when[128]
;
gettime(ban_hr, ban_min, ban_sec);
getdate(ban_years, ban_month, ban_days);
format(when, 128, "%02d/%02d/%d %02d:%02d:%02d", ban_month, ban_days, ban_years, ban_hr, ban_min, ban_sec);
format(Query, 500, "INSERT INTO `baneos` (`username`, `ip`, `banby`, `banreason`, `banwhen`) VALUES ('%q', '%s', '%s', '%s', '%s')", name, ip, admin, reason, when);
result = db_query(database, Query);
db_free_result(result);
return 1;
}
stock BanAccount(playerid, admin[] = "gg", reason[] = "N/a")
{
new
Query[500],
DBResult:result,
ban_hr, ban_min, ban_sec, ban_month, ban_days, ban_years, when[128]
;
gettime(ban_hr, ban_min, ban_sec);
getdate(ban_years, ban_month, ban_days);
format(when, 128, "%02d/%02d/%d %02d:%02d:%02d", ban_month, ban_days, ban_years, ban_hr, ban_min, ban_sec);
format(Query, 500, "INSERT INTO `baneos` (`username`, `ip`, `banby`, `banreason`, `banwhen`) VALUES ('%q', '%s', '%s', '%s', '%s')", pName(playerid), PlayerInfo[playerid][UserIP], admin, reason, when);
result = db_query(database, Query);
db_free_result(result);
return 1;
}