/Ban -
.ThePro - 22.05.2013
Oi, quando dou ban em alguйm e a pessoa loga novamente no servidor aparece o tempo que falta para ser desbanido, porйm este tempo estб subindo ao invйs de descer, veja meu sistema de ban ...
Comando
PHP код:
CMD:bantemp(playerid, params[])
{
new string[144], id, DiasBan, motivo[30];
if(Logado[playerid] == false) return SendClientMessage(playerid,-1,"{008B00}[ ATENЗГO ] {FFFFFF}Й preciso logar para executar este comando");
if(!IsPlayerAdmin(playerid) && PlayerInfo[playerid][pAdmin] < 3) return SendClientMessage(playerid, -1, "{008B00}[ ATENЗГO ] {FFFFFF}Comando Restrito, apуs 3 tentativas tomarб BAN");
if(sscanf(params, "uis", id, DiasBan, motivo)) return SendClientMessage(playerid, -1, "{FFA500}[ USE ] /bantemp [ID] [DIAS] [MOTIVO]");
if(!IsPlayerConnected(id)) return SendClientMessage(playerid, -1, "{FF0000}[ERRO] {FFFFFF}Jogador nгo conectado");
if(DiasBan > 30)return SendClientMessage(playerid, -1, "{FF0000}[ERRO] {FFFFFF}Vocк sу pode banir no mбximo por 30 dias.");
format(string, sizeof(string), "[ BANIDO ] O player %s baniu %s por %d dias [MOTIVO: %s]", Nome(playerid), Nome(id), DiasBan, motivo);
SendClientMessageToAll(-1, string);
GetPlayerName(playerid, playername, sizeof(playername));
GetPlayerName(giveplayerid, giveplayername, sizeof(giveplayername));
BanirPlayer(id, playername, DiasBan, motivo);
Kick(id);
return 1;
}
OnPlayerConnect
PHP код:
CheckBan(playerid);
new Ip[30], HoraBan, MinutoBan, SegundoBan, DiaBan, MesBan, DiaD, HoraD, MinutoD, SegundoD;
GetPlayerName(playerid, playername, sizeof(playername));
GetPlayerIp(playerid, Ip, sizeof(Ip));
format(arq, sizeof(arq), "BanidosTemp/%s.ini", playername);
if(DOF2_FileExists(arq))
{
new string[128],string1[500];
getdate(Ano, Mes, Dia);
gettime(Hora, Minuto, Segundo);
DiaBan = DOF2_GetInt(arq, "DiaBan");
MesBan = DOF2_GetInt(arq, "MesBan");
HoraBan = DOF2_GetInt(arq, "HoraBan");
MinutoBan = DOF2_GetInt(arq, "MinutoBan");
SegundoBan = DOF2_GetInt(arq, "SegundoBan");
DiaD = DiaBan - Dia;
HoraD = Hora - HoraBan;
MinutoD = Minuto - MinutoBan;
SegundoD = SegundoBan - Segundo;
if(Mes == MesBan && Dia == DiaBan && Hora > HoraBan && Minuto >= MinutoBan && Segundo > SegundoBan) { DiaD = 30; }
format(string, -1, "{FF0000}VOCК ESTБ BANIDO TEMPORARIAMENTE DESTE SERVIDOR\n\n");
strcat(string1,string);
format(string, -1, "{FFDEAD}INFORMAЗХES DO BAN\n");
strcat(string1,string);
format(string, -1, "{FFDEAD}Admin que lhe baniu: {FF7100}%s\n",DOF2_GetString(arq, "Admin"));
strcat(string1,string);
format(string, -1, "{FFDEAD}Data do ban: {FF7100} %d/%d/%d\n", Dia, Mes, Ano);
strcat(string1, string);
format(string, -1, "{FFDEAD}Hora do ban: {FF7100}%d:%d:%d\n", Hora, Minuto, Segundo);
strcat(string1, string);
format(string, -1, "{FFDEAD}Motivo: {FF7100}%s\n\n", DOF2_GetString(arq, "MotivoBan"));
strcat(string1,string);
format(string, -1, "{FFDEAD}Vocк serб desbanido em: {FF7100}%d {FFDEAD}dias {FF7100}%d {FFDEAD}horas {FF7100}%d {FFDEAD}minutos e {FF7100}%d {FFDEAD}segundos", DiaD, HoraD, MinutoD, SegundoD);
strcat(string1,string);
ShowPlayerDialog(playerid, 1437, DIALOG_STYLE_MSGBOX, "{FF7100}» {FFFFFF}VOCК ESTБ BANIDO DESTE SERVIDOR {FF7100}«", string1, "Fechar","");
return 1;
}
PublicCheckBan
PHP код:
public CheckBan(playerid)
{
new Ip[30];
GetPlayerIp(playerid, Ip, sizeof(Ip));
GetPlayerName(playerid, playername, sizeof(playername));
new ano[2], mes[2], dia[2], hora[2], minuto[2], segundo[2];
gettime(hora[0], minuto[0], segundo[0]);
getdate(ano[0], mes[0], dia[0]);
format(arq, sizeof(arq), "BanidosTemp/%s.ini", playername);
if(DOF2_FileExists(arq))
{
dia[1] = DOF2_GetInt(arq, "DiaBan");
mes[1] = DOF2_GetInt(arq, "MesBan");
ano[1] = DOF2_GetInt(arq, "AnoBan");
}
else
{
format(arq, sizeof(arq), "IPsBanidos/%s.ini", Ip);
dia[1] = DOF2_GetInt(arq, "DiaBan");
mes[1] = DOF2_GetInt(arq, "MesBan");
ano[1] = DOF2_GetInt(arq, "AnoBan");
}
format(arq, sizeof(arq), "BanidosTemp/%s.ini", playername);
if(DOF2_FileExists(arq))
{
hora[1] = DOF2_GetInt(arq, "HoraBan");
minuto[1] = DOF2_GetInt(arq, "MinutoBan");
segundo[1] = DOF2_GetInt(arq, "SegundoBan");
}
else
{
format(arq, sizeof(arq), "IPsBanidos/%s.ini", Ip);
hora[1] = DOF2_GetInt(arq, "HoraBan");
minuto[1] = DOF2_GetInt(arq, "MinutoBan");
segundo[1] = DOF2_GetInt(arq, "SegundoBan");
}
if(dia[0] >= dia[1] && mes[0] >= mes[1] && ano[0] >= ano[1] &&
hora[0] >= hora[1] && minuto[0] >= minuto[1] && segundo[0] >= segundo[1])
{
GetPlayerName(playerid, playername, sizeof(playername));
format(arq, sizeof(arq), "BanidosTemp/%s.ini", playername);
if(DOF2_FileExists(arq))
{
DOF2_RemoveFile(arq);
}
GetPlayerIp(playerid, Ip, sizeof(Ip));
format(arq, sizeof(arq), "IPsBanidos/%s.ini", Ip);
if(fexist(arq))
{
DOF2_RemoveFile(arq);
}
}
return 1;
}
PublicBanirPLayer
PHP код:
public BanirPlayer(playerid, autor[24], dias, motivo[])
{
new ip[16];
getdate(Ano, Mes, Dia);
gettime(Hora, Minuto, Segundo);
GetPlayerName(playerid, playername, sizeof(playername));
GetPlayerIp(playerid, ip, sizeof(ip));
format(arq, sizeof(arq), "BanidosTemp/%s.ini", playername);
DOF2_CreateFile(arq);
DOF2_SetString(arq, "Admin", autor);
DOF2_SetInt(arq, "Dia", Dia);
DOF2_SetInt(arq, "Mes", Mes);
DOF2_SetInt(arq, "Ano", Ano);
DOF2_SetInt(arq, "Hora", Hora);
DOF2_SetInt(arq, "Minuto", Minuto);
DOF2_SetInt(arq, "Segundo", Segundo);
DOF2_SetInt(arq, "DiaBan", Dia);
DOF2_SetInt(arq, "MesBan", Mes);
DOF2_SetInt(arq, "AnoBan", Ano);
DOF2_SetInt(arq, "HoraBan", Hora);
DOF2_SetInt(arq, "MinutoBan", Minuto);
DOF2_SetInt(arq, "SegundoBan", Segundo);
DOF2_SetString(arq, "MotivoBan", motivo);
DOF2_SetString(arq, "IP", ip);
Dia += dias;
DOF2_SetInt(arq, "DiaBan", Dia);
while(Dia > 31)
{
Dia -= 31;
Mes++;
DOF2_SetInt(arq, "DiaBan", Dia);
DOF2_SetInt(arq, "MesBan", Mes);
}
while(Mes > 12)
{
Mes -= 12;
Ano++;
DOF2_SetInt(arq, "MesBan", Mes);
DOF2_SetInt(arq, "AnoBan", Ano);
}
new DiaBan = DOF2_GetInt(arq, "DiaBan");
new MesBan = DOF2_GetInt(arq, "MesBan");
new AnoBan = DOF2_GetInt(arq, "AnoBan");
DOF2_SaveFile();
format(arq, sizeof(arq), "IPsBanidos/%s.ini", ip);
DOF2_CreateFile(arq);
DOF2_SetString(arq, "Admin", autor);
DOF2_SetInt(arq, "Dia", Dia);
DOF2_SetInt(arq, "Mes", Mes);
DOF2_SetInt(arq, "Ano", Ano);
DOF2_SetInt(arq, "Hora", Hora);
DOF2_SetInt(arq, "Minuto", Minuto);
DOF2_SetInt(arq, "Segundo", Segundo);
DOF2_SetInt(arq, "DiaBan", DiaBan);
DOF2_SetInt(arq, "MesBan", MesBan);
DOF2_SetInt(arq, "AnoBan", AnoBan);
DOF2_SetInt(arq, "HoraBan", Hora);
DOF2_SetInt(arq, "MinutoBan", Minuto);
DOF2_SetInt(arq, "SegundoBan", Segundo);
DOF2_SetString(arq, "MotivoBan", motivo);
DOF2_SetString(arq, "IP", ip);
DOF2_SaveFile();
SalvarConta(playerid);
Kick(playerid);
}
E quando o cara troca o nick ele consegue logar novamente ...
Re: /Ban -
bruxo00 - 22.05.2013
Para isso tem de banir o IP.
Pode usar o
Ou manualmente num ficheiro .ini com o
GetPlayerIP
Re: /Ban -
.ThePro - 22.05.2013
Olha o cуdigo novamente .-.
Re: /Ban -
.ThePro - 23.05.2013
Up '-'
Re: /Ban -
.ThePro - 24.05.2013
Up !