SA-MP Forums Archive
[Ajuda] Dъvida sobre ban Temporбrio. - 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] Dъvida sobre ban Temporбrio. (/showthread.php?tid=509032)



Dъvida sobre ban Temporбrio. - davi54723 - 25.04.2014

Olб a todos, bom dia/tarde, estava atrбs de alguns sistemas sobre Ban Temporбrio, e eu consegui elaborar um.
E quando eu dou o Ban Permanente (Ele salva dentro do arquivo "Permanente") e eu logo acusa que eu estou banido permanentemente. Mбs, se eu der ban Temporбrio, nгo acontece nada (Ele salva a data do arquivo em nъmeros) .
Eu acho que o problema й aqui; alguйm saberia me explicar melhor e me ajudar nessa?

RESUMO:
Quando ele salva o ban temporбrio em Nъmero que й a data que vai ser desbanido, quando eu logo no servidor, eu logo sem levar kick nem nada, mais quando eu dou ban permanente ele salva em letras, e eu levo kick normalmente.


O que estб errado ? Seria isso aqui ?
pawn Код:
if(DOF2_GetInt(Arquivo2, "DiaDesban") < dia)
Acho que deu pra entender, estou com um pouco de sono.


Re: Dъvida sobre ban Temporбrio. - Fel486 - 25.04.2014

Tб longe da melhor noзгo possнvel, mas tб aн

PS: desculpa a desorganizaзгo.

PHP код:
///////// Na hora do banimento. Vocк grava essas variaveis em Int no seu arquivo. ////

new dia_banmes_banano_ban;
new 
hora_banminuto_bansegundo_ban;

getdate(ano_banmes_bandia_ban);
gettime(hora_banminuto_bansegundo_ban);

// PS: ao gravar, vocк acrescenta a duraзгo.

// EX: banido hoje, dia 25. Vocк acrescente +3 nos dias. Ou seja, vai ser desbanido
//                          na mesma hora, no mesmo minuto e no mesmo segundo,
//                          mas apenas daqui a 3 dias.

////////////////////////////////////////////////////////////////////////////////////
// public OnPlayerConnect(playerid) //

//// Vocк carrega as variaveis dos dados do banimento para as seguintes variaveis:

new dia_banmes_banano_ban;
new 
hora_banminuto_bansegundo_ban;

//////////////////////////////////////////////////////////////////////////


///// Agora, vocк compara com os dados deste exato momento:

new diamesano;
new 
horaminutosegundo;

getdate(anomesdia);
gettime(horaminutosegundo);

if(
ano >= ano_ban// EX: (ano_ban = 2014) (ano_atual = 2014)
{
    if(
mes >= mes_ban// EX: (mes_ban = 4) (mes_atual = 4)
    
{
        if(
dia >= dia_ban// Ex: (dia_ban = 28) (dia_atual 25) // Ou seja, o desban ainda nгo estб pronto.
        
{
            if(
hora >= hora_ban
            {
                if(
minuto >= minuto_ban)
                {
                    if(
segundo >= segundo_ban)
                    {
                        
// Desbanido
                    
}
                    else return 
SendClientMessage(playerid0xFF0000FF"Ainda restam segundos para o desbanimento.");
                }
                else return 
SendClientMessage(playerid0xFF0000FF"Ainda restam minutos para o desbanimento");
            }
            else return 
SendClientMessage(playerid0xFF0000FF"Ainda restam horas para o desbanimento");
        }
        else return 
SendClientMessage(playerid0xFF0000FF"Ainda restam dias para o desbanimento");
    }
    else return 
SendClientMessage(playerid0xFF0000FF"Ainda restam meses para o desbanimento");
}
else return 
SendClientMessage(playerid0xFF0000FF"Ainda restam anos para o desbanimento"); 



Re: Dъvida sobre ban Temporбrio. - davi54723 - 25.04.2014

Entгo camarada, o problema nгo seria esse.
Meu problema й;

Quando o arquivo й salvo em letras(Ban Permanente("Permanente" < Fica salvo.)) funciona normalmente.
Mбs quando o arquivo й salvo em nъmeros (Ban Temporбrio(Dias)) ele nгo funciona.

Essa verificaзгo deve estб com problemas>


pawn Код:
if(DOF2_GetInt(Arquivo2, "DiaDesban") < dia)



Re: Dъvida sobre ban Temporбrio. - Fel486 - 25.04.2014

Entгo, vocк precisaria fazer o que eu falei: pegar a data do banimento (exemplo, hoje), acrescentar o numero de dias а data e salvar esta linha. Cada vez que o usuбrio logasse, vocк compararia a data de hoje com a data do fim do banimento .


Re: Dъvida sobre ban Temporбrio. - davi54723 - 25.04.2014

Consegui fazer de outra maneira, eu vi em um poste, porйm acabou dando outro erro.
Por exemplo, hoje й dia 25, se eu levar ban temporбrio por 10 dias, eu acabo sendo desbanido dia 35 (Que por acaso nгo existe...)

Poderia me dizer como, e por que ? e como resolveria ?


Re: Dъvida sobre ban Temporбrio. - davi54723 - 25.04.2014

Alguйm saberia ?


Re: Dъvida sobre ban Temporбrio. - davi54723 - 27.04.2014

Alguйm pode me ajudar ? ...


Re: Dъvida sobre ban Temporбrio. - VeNuZ_ - 27.04.2014

Como esta seu cуdigo? Melhor maneira serб usar timestamp !
Veja isto : https://sampforum.blast.hk/showthread.php?tid=254915


Re: Dъvida sobre ban Temporбrio. - davi54723 - 27.04.2014

pawn Код:
new tmp[128],tmp2[128],dias;
        new a, m, d,hora, minuto, segundo;

        gettime(hora, minuto, segundo);//<<<<<<
        getdate(a, m, d);//<<<<<<
        format(tmp, 20, "%d/%d/%d", d, m, a);<<<<<<
        format(tmp2, 20, "%d:%d:%d", hora, minuto, segundo);<<<<<<

        if(sscanf(params, "uis", PTiD, dias/*<<<<<<<*/, motivo)) return SCM(playerid, 0x33CCFFAA, "Uso: /bantemp546 [ID] [Dias] [Motivo]");
        DOF2_SetInt(Arquivo2, "DiaDesban", d+dias); //<<<<<<
Dei uma resumida, e retirei tudo que nгo tem nada haver, o comando й esse.
E o problema й que se eu levar um ban de 10 dias hoje, sou desbanido apenas dia 37 (Que nгo existe), ou seja, ele salva a data + o dias do ban... 37 dias...


Re: Dъvida sobre ban Temporбrio. - davi54723 - 27.04.2014

Quote:
Originally Posted by davi54723
Посмотреть сообщение
pawn Код:
new tmp[128],tmp2[128],dias;
        new a, m, d,hora, minuto, segundo;

        gettime(hora, minuto, segundo);//<<<<<<
        getdate(a, m, d);//<<<<<<
        format(tmp, 20, "%d/%d/%d", d, m, a);<<<<<<
        format(tmp2, 20, "%d:%d:%d", hora, minuto, segundo);<<<<<<

        if(sscanf(params, "uis", PTiD, dias/*<<<<<<<*/, motivo)) return SCM(playerid, 0x33CCFFAA, "Uso: /bantemp546 [ID] [Dias] [Motivo]");
        DOF2_SetInt(Arquivo2, "DiaDesban", d+dias); //<<<<<<
Dei uma resumida, e retirei tudo que nгo tem nada haver, o comando й esse.
E o problema й que se eu levar um ban de 10 dias hoje, sou desbanido apenas dia 37 (Que nгo existe), ou seja, ele salva a data + o dias do ban... 37 dias...
UP '