[Ajuda] Dъvida sobre ban Temporбrio.
#1

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.
Reply
#2

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"); 
Reply
#3

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)
Reply
#4

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 .
Reply
#5

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 ?
Reply
#6

Alguйm saberia ?
Reply
#7

Alguйm pode me ajudar ? ...
Reply
#8

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

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...
Reply
#10

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 '
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)