Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* ______________________________________
- |_____FILTERSCRIPT_TEMP_BAN_SYSTEM___|
- |______________BY_F1N4L______________|
- |_______Initialized_29_03_2016_______|
- |_________Updated_30_03_2016_________|
- |___________v_0.3z__v.2.0____________|
- STOCKS:
- BanirPlayer(Nome[], IP[], Banido_Por[], Data[], Motivo[], GetTime, Tempo[])
- BanirIpPlayer(Nome[], IP[], Banido_Por[], Data[], Motivo[], GetTime, Tempo[])
- DesbanirPlayer(Conta[])
- */
- #include a_samp // By SA:MP Team
- #include sscanf2 // By Y_Less
- #include zcmd // By Zeex
- #define BAN_TABLE "BANIMENTOS"
- #define BAN_DB "Bans.db"
- #define DIALOG_BAN 222
- new
- DB:Ban_Database
- ;
- public OnFilterScriptInit()
- {
- new
- BAN_STR[500]
- ;
- Ban_Database = db_open(BAN_DB);
- strcat(BAN_STR, "CREATE TABLE IF NOT EXISTS `"BAN_TABLE"` (");
- strcat(BAN_STR, "`ID` INTEGER PRIMARY KEY AUTOINCREMENT,");
- strcat(BAN_STR, "`NOME` TEXT DEFAULT 'N/A',");
- strcat(BAN_STR, "`IP` TEXT DEFAULT '0.0.0.0',");
- strcat(BAN_STR, "`BANIDO POR` TEXT DEFAULT 'N/A',");
- strcat(BAN_STR, "`DATA` TEXT DEFAULT 'N/A',");
- strcat(BAN_STR, "`MOTIVO` TEXT DEFAULT 'N/A',");
- strcat(BAN_STR, "`GETTIME` NUMERIC DEFAULT '0',");
- strcat(BAN_STR, "`TEMPO` TEXT DEFAULT 'N/A')");
- db_free_result(db_query(Ban_Database, BAN_STR));
- return 1;
- }
- public OnFilterScriptExit()
- {
- db_close(Ban_Database);
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- new
- String[350],
- Strcat[500],
- GetTime,
- GetIp[30],
- DBResult:Resultado
- ;
- format(String,sizeof(String),"SELECT * FROM `"BAN_TABLE"` WHERE `IP` = '%s' OR `NOME` = '%s' COLLATE NOCASE", GetIP(playerid), GetName(playerid));
- Resultado = db_query(Ban_Database,String);
- if(db_num_rows(Resultado))
- {
- db_get_field_assoc(Resultado, "GETTIME", String, 40);
- GetTime = strval(String);
- if(GetTime > gettime())
- {
- format(String,sizeof(String), "NOME: %s\n", GetName(playerid));strcat(Strcat, String);
- db_get_field_assoc(Resultado, "IP", GetIp, 30);
- format(String,sizeof(String), "IP: %s\n", GetIp);strcat(Strcat, String);
- db_get_field_assoc(Resultado, "BANIDO POR", String, 30);
- format(String,sizeof(String), "BANIDO POR: %s\n", String);strcat(Strcat, String);
- db_get_field_assoc(Resultado, "MOTIVO", String, 40);
- format(String,sizeof(String), "MOTIVO: %s\n", String);strcat(Strcat, String);
- db_get_field_assoc(Resultado, "DATA", String, 40);
- format(String,sizeof(String), "DATA: %s\n", String);strcat(Strcat, String);
- db_get_field_assoc(Resultado, "TEMPO", String, 50);
- format(String,sizeof(String), "TEMPO: %s\n", String);strcat(Strcat, String);
- format(String,sizeof(String), "TEMPO RESTANTE: %s", ConvertTime(GetTime - gettime()));strcat(Strcat, String);
- ShowPlayerDialog(playerid, DIALOG_BAN, DIALOG_STYLE_MSGBOX, "Painel de Banimento:", Strcat, "SAIR","");
- SetTimerEx("Kickar", 500, false, "i", playerid);
- }
- else if(GetTime < gettime())
- {
- format(String,sizeof(String),"DELETE FROM `"BAN_TABLE"` WHERE `NOME` = '%s'", GetName(playerid));
- Resultado = db_query(Ban_Database,String);
- SendClientMessage(playerid, 0xFF0000FF, "Sua conta foi desbanida.");
- }
- }
- db_free_result(db_query(Ban_Database, String));
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- return 1;
- }
- CMD:ban(playerid, params[])
- {
- new
- TARGET,
- MOTIVO[30],
- DATA[50],
- STRING[300],
- Data[3],
- Hora[3],
- GetTime,
- TEMPO
- ;
- if(!IsPlayerAdmin(playerid))
- return SendClientMessage(playerid, -1, "Você precisa ser Admin RCON para realizar esta ação.");
- if(sscanf(params, "us[300]is[30]", TARGET, STRING, TEMPO, MOTIVO))
- return SendClientMessage(playerid, -1, "/BAN [ID] [DIAS(D) ou HORAS(H) ou MINUTOS(M)] [TEMPO] [MOTIVO]");
- if(strlen(MOTIVO) < 3 || strlen(MOTIVO) > 30)
- return SendClientMessage(playerid, -1, "Motivo inválido. Utilize entre 3 - 30 caracteres.");
- if(TEMPO < 1 || TEMPO > 1000)
- return SendClientMessage(playerid, -1, "Tempo inválido. Utilize entre 1 - 1000 minutos/horas/dias.");
- if(!IsPlayerConnected(TARGET))
- return SendClientMessage(playerid, -1, "Player não está conectado.");
- getdate(Data[0], Data[1], Data[2]);
- gettime(Hora[0], Hora[1], Hora[2]);
- format(DATA, sizeof(DATA), "%02i/%02i/%02i | %02i:%02i:%02i", Data[2], Data[1], Data[0], Hora[0], Hora[1], Hora[2]);
- if(strcmp(STRING, "D", true) == 0)
- GetTime = TEMPO * 24 * 60 * 60,
- BanirPlayer(GetName(TARGET), GetIP(TARGET), GetName(playerid), DATA, MOTIVO, GetTime, ConvertTime(GetTime)),
- db_free_result(db_query(Ban_Database, STRING));
- else if(strcmp(STRING, "H", true) == 0)
- GetTime = TEMPO * 60 * 60,
- BanirPlayer(GetName(TARGET), GetIP(TARGET), GetName(playerid), DATA, MOTIVO, GetTime, ConvertTime(GetTime)),
- db_free_result(db_query(Ban_Database, STRING));
- else if(strcmp(STRING, "M", true) == 0)
- GetTime = TEMPO * 60,
- BanirPlayer(GetName(TARGET), GetIP(TARGET), GetName(playerid), DATA, MOTIVO, GetTime, ConvertTime(GetTime)),
- db_free_result(db_query(Ban_Database, STRING));
- else return SendClientMessage(playerid, -1, "/BAN [ID] [MOTIVO] [DIAS(D) ou HORAS(H) ou MINUTOS(M)] [TEMPO]");
- format(STRING,sizeof(STRING), "Admin '%s' baniu temporariamente o jogador '%s [ID: %i]'. Motivo: '%s'. TEMPO: '%s'", GetName(playerid), GetName(TARGET), TARGET, MOTIVO, ConvertTime(GetTime));
- SendClientMessageToAll(-1, STRING);
- return 1;
- }
- CMD:banip(playerid, params[])
- {
- new
- IP[30],
- MOTIVO[30],
- DATA[50],
- STRING[300],
- Data[3],
- Hora[3],
- GetTime,
- TEMPO
- ;
- if(!IsPlayerAdmin(playerid))
- return SendClientMessage(playerid, -1, "Você precisa ser Admin RCON para realizar esta ação.");
- if(sscanf(params, "s[30]s[300]is[30]", IP, STRING, TEMPO, MOTIVO))
- return SendClientMessage(playerid, -1, "/BANIP [IP] [DIAS(D) ou HORAS(H) ou MINUTOS(H)] [TEMPO] [MOTIVO]");
- if(strlen(MOTIVO) < 3 || strlen(MOTIVO) > 30)
- return SendClientMessage(playerid, -1, "Motivo inválido. Utilize entre 3 - 30 caracteres.");
- if(strlen(IP) < 1 || strlen(IP) > 30)
- return SendClientMessage(playerid, -1, "Tamanho de IP inválido.");
- if(TEMPO < 1 || TEMPO > 1000)
- return SendClientMessage(playerid, -1, "Tempo inválido. Utilize entre 1 - 1000 minutos/horas/dias.");
- getdate(Data[0], Data[1], Data[2]);
- gettime(Hora[0], Hora[1], Hora[2]);
- format(DATA, sizeof(DATA), "%02i/%02i/%02i | %02i:%02i:%02i", Data[2], Data[1], Data[0], Hora[0], Hora[1], Hora[2]);
- if(strcmp(STRING, "D", true) == 0)
- GetTime = TEMPO * 24 * 60 * 60,
- BanirIpPlayer("N/A", IP, GetName(playerid), DATA, MOTIVO, GetTime, ConvertTime(GetTime)),
- db_free_result(db_query(Ban_Database, STRING));
- else if(strcmp(STRING, "H", true) == 0)
- GetTime = TEMPO * 60 * 60,
- BanirIpPlayer("N/A", IP, GetName(playerid), DATA, MOTIVO, GetTime, ConvertTime(GetTime)),
- db_free_result(db_query(Ban_Database, STRING));
- else if(strcmp(STRING, "M", true) == 0)
- GetTime = TEMPO * 60,
- BanirIpPlayer("N/A", IP, GetName(playerid), DATA, MOTIVO, GetTime, ConvertTime(GetTime)),
- db_free_result(db_query(Ban_Database, STRING));
- else return SendClientMessage(playerid, -1, "/BAN [ID] [DIAS(D) ou HORAS(H) ou MINUTOS(M)] [TEMPO] [MOTIVO]");
- format(STRING,sizeof(STRING), "Admin '%s' baniu temporariamente o IP '%s'. Motivo: '%s'. TEMPO: '%s'", GetName(playerid), IP, MOTIVO, ConvertTime(GetTime));
- SendClientMessageToAll(-1, STRING);
- return 1;
- }
- CMD:desban(playerid, params[])
- {
- new
- DESBAN[30],
- CONTA[30],
- STRING[200],
- DBResult:Resultado
- ;
- if(!IsPlayerAdmin(playerid))
- return SendClientMessage(playerid, -1, "Você precisa ser Admin RCON para realizar esta ação.");
- if(sscanf(params, "s[30]s[30]", DESBAN, CONTA))
- return SendClientMessage(playerid, -1, "/DESBAN IP [IP] | /DESBAN NOME [NOME]");
- if(strcmp(DESBAN, "IP", true) == 0)
- {
- format(STRING, sizeof(STRING),"SELECT * FROM `"BAN_TABLE"` WHERE `IP` = '%s'", CONTA);
- }
- else if(strcmp(DESBAN, "NOME", true) == 0)
- {
- format(STRING, sizeof(STRING),"SELECT * FROM `"BAN_TABLE"` WHERE `NOME` = '%s' COLLATE NOCASE", CONTA);
- }
- else return SendClientMessage(playerid, -1, "/DESBAN IP [IP] | /DESBAN NOME [NOME]");
- Resultado = db_query(Ban_Database, STRING);
- if(db_num_rows(Resultado))
- {
- DesbanirPlayer(CONTA);
- SendClientMessage(playerid, -1, "Conta desbanida com sucesso.");
- }
- else SendClientMessage(playerid, -1, "Conta inexistente no Banco de Dados.");
- db_free_result(db_query(Ban_Database, STRING));
- return 1;
- }
- stock BanirPlayer(xNome[], xIP[], xBanido_Por[], xData[], xMotivo[], xGetTime, xTempo[])
- {
- new
- STRING[500],
- STRCAT[300],
- DBResult:Resultado
- ;
- format(STRING,sizeof(STRING),"SELECT * FROM `"BAN_TABLE"` WHERE `NOME` = '%s' COLLATE NOCASE", xNome);
- Resultado = db_query(Ban_Database,STRING);
- if(!db_num_rows(Resultado))
- format(STRING, sizeof(STRING), "INSERT INTO `"BAN_TABLE"` (`NOME`, `IP`, `BANIDO POR`, `DATA`, `MOTIVO`, `GETTIME`, `TEMPO`)VALUES('%s', '%s', '%s', '%s', '%s', '%i', '%s')", xNome, xIP, xBanido_Por, xData, xMotivo, xGetTime + gettime(), xTempo);
- db_free_result(db_query(Ban_Database, STRING));
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(strcmp(GetName(i), xNome, false) == 0)
- {
- format(STRING, sizeof(STRING), "NOME: %s\n", xNome);strcat(STRCAT, STRING);
- format(STRING, sizeof(STRING), "IP: %s\n", xIP);strcat(STRCAT, STRING);
- format(STRING, sizeof(STRING), "BANIDO POR: %s\n", xBanido_Por);strcat(STRCAT, STRING);
- format(STRING, sizeof(STRING), "MOTIVO: %s\n", xMotivo);strcat(STRCAT, STRING);
- format(STRING, sizeof(STRING), "DATA: %s\n", xData);strcat(STRCAT, STRING);
- format(STRING, sizeof(STRING), "TEMPO: %s\n", ConvertTime(xGetTime));strcat(STRCAT, STRING);
- format(STRING, sizeof(STRING), "TEMPO RESTANTE: %s", ConvertTime(xGetTime));strcat(STRCAT, STRING);
- ShowPlayerDialog(i, DIALOG_BAN, DIALOG_STYLE_MSGBOX, "Painel de Banimento:", STRCAT, "SAIR","");
- SetTimerEx("Kickar", 500, false, "i", i);
- }
- }
- return 1;
- }
- stock BanirIpPlayer(xNome[], xIP[], xBanido_Por[], xData[], xMotivo[], xGetTime, xTempo[])
- {
- new
- STRING[500],
- STRCAT[300],
- DBResult:Resultado
- ;
- format(STRING, sizeof(STRING),"SELECT * FROM `"BAN_TABLE"` WHERE `IP` = '%s'", xIP);
- Resultado = db_query(Ban_Database, STRING);
- if(db_num_rows(Resultado))
- format(STRING, sizeof(STRING), "UPDATE `"BAN_TABLE"` SET `DATA` = '%s', `MOTIVO` = '%s', `GETTIME` = '%i', `TEMPO` = '%s' WHERE `IP` = '%s'", xData, xMotivo, xGetTime + gettime(), xTempo, xIP);
- else
- format(STRING, sizeof(STRING), "INSERT INTO `"BAN_TABLE"` (`NOME`, `IP`, `BANIDO POR`, `DATA`, `MOTIVO`, `GETTIME`, `TEMPO`)VALUES('%s', '%s', '%s', '%s', '%s', '%i', '%s')", xNome, xIP, xBanido_Por, xData, xMotivo, xGetTime + gettime(), xTempo);
- db_free_result(db_query(Ban_Database, STRING));
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if(strcmp(GetIP(i), xIP, true) == 0)
- {
- format(STRING, sizeof(STRING), "NOME: %s\n", GetName(i));strcat(STRCAT, STRING);
- format(STRING, sizeof(STRING), "IP: %s\n", xIP);strcat(STRCAT, STRING);
- format(STRING, sizeof(STRING), "BANIDO POR: %s\n", xBanido_Por);strcat(STRCAT, STRING);
- format(STRING, sizeof(STRING), "MOTIVO: %s\n", xMotivo);strcat(STRCAT, STRING);
- format(STRING, sizeof(STRING), "DATA: %s\n", xData);strcat(STRCAT, STRING);
- format(STRING, sizeof(STRING), "TEMPO: %s\n", ConvertTime(xGetTime));strcat(STRCAT, STRING);
- format(STRING, sizeof(STRING), "TEMPO RESTANTE: %s", ConvertTime(xGetTime));strcat(STRCAT, STRING);
- ShowPlayerDialog(i, DIALOG_BAN, DIALOG_STYLE_MSGBOX, "Painel de Banimento:", STRCAT, "SAIR","");
- SetTimerEx("Kickar", 500, false, "i", i);
- }
- }
- return 1;
- }
- stock DesbanirPlayer(xConta[])
- {
- new
- STRING[500],
- DBResult:Resultado
- ;
- format(STRING, sizeof(STRING),"SELECT * FROM `"BAN_TABLE"` WHERE `IP` = '%s' OR `NOME` = '%s' COLLATE NOCASE", xConta, xConta);
- Resultado = db_query(Ban_Database, STRING);
- if(db_num_rows(Resultado))
- format(STRING, sizeof(STRING), "DELETE FROM `"BAN_TABLE"` WHERE `IP` = '%s' OR `NOME` = '%s' COLLATE NOCASE", xConta, xConta),
- db_free_result(db_query(Ban_Database, STRING));
- return 1;
- }
- forward Kickar(playerid);
- public Kickar(playerid)
- {
- return Kick(playerid);
- }
- stock ConvertTime(SEGUNDOS)
- {
- new
- MINUTOS,
- HORAS,
- DIAS,
- String[200]
- ;
- if(SEGUNDOS > 59)
- {
- MINUTOS = SEGUNDOS / 60;
- SEGUNDOS = SEGUNDOS - MINUTOS * 60;
- }
- if(MINUTOS > 59)
- {
- HORAS = MINUTOS / 60;
- MINUTOS = MINUTOS - HORAS * 60;
- }
- if(HORAS > 23)
- {
- DIAS = HORAS / 24;
- HORAS = HORAS - DIAS * 24;
- }
- format(String, sizeof(String), "%02d Dias e %02d Horas e %02d Minutos e %02d Segundos", DIAS, HORAS, MINUTOS, SEGUNDOS);
- if(DIAS == 0) format(String, sizeof(String),"%02d Horas e %02d Minutos e %02d Segundos", HORAS, MINUTOS, SEGUNDOS);
- if(DIAS == 0 && HORAS == 0) format(String, sizeof(String),"%02d Minutos e %02d Segundos", MINUTOS, SEGUNDOS);
- if(DIAS == 0 && HORAS == 0 && MINUTOS == 0) format(String, sizeof(String),"%02d Segundos", SEGUNDOS);
- return String;
- }
- stock GetName(playerid)
- {
- new
- GetName_[24]
- ;
- GetPlayerName(playerid, GetName_, sizeof(GetName_));
- return GetName_;
- }
- stock GetIP(playerid)
- {
- new
- GetIP_[30]
- ;
- GetPlayerIp(playerid, GetIP_, sizeof(GetIP_));
- return GetIP_;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement