SA-MP Forums Archive
[Ajuda] /Ban - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Português/Portuguese (https://sampforum.blast.hk/forumdisplay.php?fid=34)
+---- Thread: [Ajuda] /Ban (/showthread.php?tid=438862)



/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(playeridparams[])
{
    new 
string[144], idDiasBanmotivo[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"idDiasBanmotivo)) 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(stringsizeof(string), "[ BANIDO ] O player %s baniu %s por %d dias [MOTIVO: %s]"Nome(playerid), Nome(id), DiasBanmotivo);
    
SendClientMessageToAll(-1string);
    
GetPlayerName(playeridplayernamesizeof(playername));
    
GetPlayerName(giveplayeridgiveplayernamesizeof(giveplayername));
    
    
BanirPlayer(idplayernameDiasBanmotivo);
    
Kick(id);
    return 
1;

OnPlayerConnect
PHP код:
    CheckBan(playerid);
    new 
Ip[30], HoraBanMinutoBanSegundoBanDiaBanMesBanDiaDHoraDMinutoDSegundoD;
     
GetPlayerName(playeridplayernamesizeof(playername));
     
GetPlayerIp(playeridIpsizeof(Ip));
     
format(arqsizeof(arq), "BanidosTemp/%s.ini"playername);
    if(
DOF2_FileExists(arq))
    {
        new 
string[128],string1[500];
        
getdate(AnoMesDia);
        
gettime(HoraMinutoSegundo);
        
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"DiaMesAno);
        
strcat(string1string);
        
format(string, -1"{FFDEAD}Hora do ban: {FF7100}%d:%d:%d\n"HoraMinutoSegundo);
        
strcat(string1string);
        
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"DiaDHoraDMinutoDSegundoD);
        
strcat(string1,string);
        
ShowPlayerDialog(playerid1437DIALOG_STYLE_MSGBOX"{FF7100}» {FFFFFF}VOCК ESTБ BANIDO DESTE SERVIDOR {FF7100}«"string1"Fechar","");
        return 
1;
     } 
PublicCheckBan

PHP код:
public CheckBan(playerid)
{
    new 
Ip[30];
    
GetPlayerIp(playeridIpsizeof(Ip));
    
GetPlayerName(playeridplayernamesizeof(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(arqsizeof(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(arqsizeof(arq), "IPsBanidos/%s.ini"Ip);
        
dia[1] = DOF2_GetInt(arq"DiaBan");
        
mes[1] = DOF2_GetInt(arq"MesBan");
        
ano[1] = DOF2_GetInt(arq"AnoBan");
    }
    
format(arqsizeof(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(arqsizeof(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(playeridplayernamesizeof(playername));
        
format(arqsizeof(arq), "BanidosTemp/%s.ini"playername);
        if(
DOF2_FileExists(arq))
        {
            
DOF2_RemoveFile(arq);
        }
        
GetPlayerIp(playeridIpsizeof(Ip));
        
format(arqsizeof(arq), "IPsBanidos/%s.ini"Ip);
        if(
fexist(arq))
        {
            
DOF2_RemoveFile(arq);
        }
    }
      return 
1;

PublicBanirPLayer
PHP код:
public BanirPlayer(playeridautor[24], diasmotivo[])
{
    new 
ip[16];
    
getdate(AnoMesDia);
    
gettime(HoraMinutoSegundo);
    
GetPlayerName(playeridplayernamesizeof(playername));
    
GetPlayerIp(playeridipsizeof(ip));
    
format(arqsizeof(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(arqsizeof(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

PHP код:
Ban(playerid); 
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 !