SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese

Reply
 
Thread Tools Display Modes
Old 19/01/2019, 05:46 PM   #1
MateGPlay
Big Clucker
 
MateGPlay's Avatar
 
Join Date: Jan 2018
Location: Florianópolis, Santa Catarina
Posts: 119
Reputation: 1
Default Sistema de Banimento de Serial

Estou com problemas no sistema de banimento de serial do meu server, da pra banir a serial normalmente, o problema esta no desban, o comando nao esta funcionando, quando uso o comando aparece "Serial não encontrado na base de dados".


PHP Code:
native gpci (playeridserial [], len);

if(
strcmp(cmd"/banserial"true) == 0)
    {
        if(
IsPlayerConnected(playerid))
        {
        if(
PlayerInfo[playerid][pAdmin] != 10) return SendClientMessage(playeridCOLOR_RED" Esse Comando é Totalmente Restrito, Você não tem acesso a ele.");
            
tmp strtok(cmdtextidx);
            if(!
strlen(tmp))
            {
                
SendClientMessage(playeridCOLOR_GRAD2"USE: /banserial [id] [motivo]");
                return 
1;
            }
                new 
id strval(tmp);
                if(!
IsPlayerConnected(id))
                {
                
SendClientMessage(playeridCOLOR_RED" ID Informado é Invalido.");
                return 
1;
                }
                
giveplayerid ReturnUser(tmp);

                if(
admtrampando[playerid] < && PlayerInfo[playerid][pAdmin] != 10)
                    {
                    
SendClientMessage(playeridCOLOR_GRAD1"Você não está trabalhando! (/trabalhar)");
                    return 
1;
                    }
                        
GetPlayerName(giveplayeridgiveplayersizeof(giveplayer));
                        
GetPlayerName(playeridsendernamesizeof(sendername));
                        new 
length strlen(cmdtext);
                        while ((
idx length) && (cmdtext[idx] <= ' '))
                        {
                            
idx++;
                        }
                        new 
offset idx;
                        new 
result[64];
                        while ((
idx length) && ((idx offset) < (sizeof(result) - 1)))
                        {
                            
result[idx offset] = cmdtext[idx];
                            
idx++;
                        }
                        
result[idx offset] = EOS;
                        if(!
strlen(result))
                        {
                            
SendClientMessage(playeridCOLOR_GRAD2"USE: /banserial [id] [motivo]");
                            return 
1;
                        }
                        if(
PlayerInfo[giveplayerid][pAdmin] >= 10)
                        {
                            
SendClientMessage(playeridCOLOR_GRAD1"Você não pode banir um Desenvolvedor !");
                            return 
1;
                        }
                        new 
arquivo[64], tmp2[20], stri[64], playerserial[128], string2[64];
                        
gpci(giveplayeridplayerserialsizeof(playerserial));
                        
format(stringsizeof(string), "O %s %s Baniu o Serial %s de %s"CargoAdmin(playerid), sendernameplayerserialgiveplayer);
                        
ChatDono(COLOR_ORANGEstring10);
                        
getdate(AnoMesDia);
                        
format(tmp20"%d/%d/%d"DiaMesAno);
                        
gettime(HoraMinutoSegundo);
                        
format(tmp220"%d:%d:%d"HoraMinutoSegundo);
                        
format(stringsizeof(string), "O %s %s baniu o Serial do Jogador %s, Motivo: %s",CargoAdmin(playerid), sendernamegiveplayer, (result));
                        
SendClientMessageToAll(COLOR_REDstring);
                        
format(gstring,sizeof(gstring), " %s Serial:%s foi banido pelo %s %s, motivo: %s"PlayerName(giveplayerid), playerserialCargoAdmin(playerid), PlayerName(playerid), resultstring2string);
                        
SBanLog(gstring);
                        
Kick(giveplayerid);
                        if(!
dini_Exists(arquivo))
                        {
                            
format(strisizeof(stri), "SerialBanidos/%s.ini",playerserial);
                            
dini_Create(stri);
                            
dini_Set(stri,"Motivo",(result));
                            
dini_Set(stri,"Admin",PlayerName(playerid));
                            
dini_Set(stri,"Data",tmp);
                            
dini_Set(stri,"Hora",tmp2);
                            
dini_Set(stri,"Nick",PlayerName(giveplayerid));
                            
StatusPlayer(5giveplayerid);
                            return 
1;
                 }
             }
    }

if(
strcmp(cmd,"/desbanserial",true)==0)
       {
        if(
PlayerInfo[playerid][pAdmin] != 10) return SendClientMessage(playeridCOLOR_RED" Apenas O Desenvolvedor pode usar esse comando.");
          {
            
tmp strtok(cmdtext,idx);
            if(!
strlen(tmp))
            {
                
SendClientMessage(playerid,COLOR_GRAD1,"USE: /desbanserial [Serial DO JOGADOR]");
                return 
1;
               }
            
format(gstring,sizeof(gstring), "SerialBanidos/%s.ini"tmp);
            if(
dini_Exists(gstring))
            {
                
GetPlayerName(playeridsendernamesizeof(sendername));
                new 
arquivo[78];
                
format(arquivosizeof(arquivo), "SerialBanidos/%s.ini",tmp);
                
format(string,sizeof(string), "O %s %s desbaniu o Serial do jogador %s",CargoAdmin(playerid), sendernamedini_Get(arquivo,"Nick"));
                
SendClientMessageToAll(COLOR_REDstring);
                
dini_Remove(gstring);
                return 
1;
            }
            else
            {
            
SendClientMessage(playerid,COLOR_GRAD1,"Serial não encontrado na base de dados");
            return 
1;
            }
        }
    } 

Last edited by MateGPlay; 19/01/2019 at 08:15 PM.
MateGPlay is offline   Reply With Quote
Old 19/01/2019, 06:29 PM   #2
InsaneBR
Big Clucker
 
InsaneBR's Avatar
 
Join Date: Feb 2018
Posts: 104
Reputation: 8
Default Re: Sistema de Banimento de Serial

Cara, isso tá péssimo!

Faça um debug ai nesse "código", mude isto:
pawn Code:
else
            {
            SendClientMessage(playerid,COLOR_GRAD1,"Serial não encontrado na base de dados");
            return 1;
            }

para isto
pawn Code:
else printf("Serial %s não encontrado.", tmp)
e veja se o serial printado no console realmente existe no seu diretório SerialBanidos.


Pegue esta base
pawn Code:
new idx, cmd[128], tmp[128];
cmd = strtok(cmdtext, idx);
if(strcmp(cmd, "/banserial", true) == 0)
{
    if(!IsPlayerAdmin(playerid))
        return SendClientMessage(playerid, -1, "Você não é um RCON.");

    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
        return SendClientMessage(playerid, -1, "/banserial [id]");

    new id = strval(tmp);
    if(!IsPlayerConnected(id))
        return SendClientMessage(playerid, -1, "ID inválido.");

    new playerSerial[128];
    gpci(id, playerSerial, sizeof(playerSerial));
       
    new string[128];
    format(string, sizeof(string), "SerialBanidos/%s.ini", playerSerial);
    if(!dini_Exists(string)) dini_Create(string);
       
    Ban(id);
    return 1;
}

if(strcmp(cmd, "/desbanserial", true) == 0)
{
    if(!IsPlayerAdmin(playerid))
        return SendClientMessage(playerid, -1, "Você não é um RCON.");

    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
        return SendClientMessage(playerid, -1, "/desbanserial [SERIAL]");
       
    new string[128];
    format(string, sizeof(string), "SerialBanidos/%s.ini", tmp);
   
    if(!dini_Exists(string))
        return SendClientMessage(playerid, -1, "Serial não encontrado.");
       
    printf("Serial %s desbanido", tmp);
    dini_Remove(string);
    return 1;
}


Não sei se você tem conhecimento disso, mas é bom lembrar:

"O GPCI de um jogador NÃO é ÚNICO, alguns jogadores podem ter GPCI similar ou igual, não banir apenas devido a uma correspondência GPCI."

Last edited by InsaneBR; 19/01/2019 at 08:49 PM.
InsaneBR is offline   Reply With Quote
Old 19/01/2019, 07:00 PM   #3
MateGPlay
Big Clucker
 
MateGPlay's Avatar
 
Join Date: Jan 2018
Location: Florianópolis, Santa Catarina
Posts: 119
Reputation: 1
Default Re: Sistema de Banimento de Serial

usei a função print e só mostrei metade do serial, como resolvo isso?
MateGPlay is offline   Reply With Quote
Old 19/01/2019, 07:01 PM   #4
InsaneBR
Big Clucker
 
InsaneBR's Avatar
 
Join Date: Feb 2018
Posts: 104
Reputation: 8
Default Re: Sistema de Banimento de Serial

Aumente o tamanho da string que armazena o que foi digitado.
No seu caso a variável é tmp.
InsaneBR is offline   Reply With Quote
Old 19/01/2019, 07:03 PM   #5
MateGPlay
Big Clucker
 
MateGPlay's Avatar
 
Join Date: Jan 2018
Location: Florianópolis, Santa Catarina
Posts: 119
Reputation: 1
Default Re: Sistema de Banimento de Serial

Quote:
Originally Posted by InsaneBR View Post
"O GPCI de um jogador NÃO é ÚNICO, alguns jogadores podem ter GPCI similar ou igual, não banir apenas devido a uma correspondência GPCI."
Como pego realmente o Serial?
MateGPlay is offline   Reply With Quote
Old 19/01/2019, 07:14 PM   #6
InsaneBR
Big Clucker
 
InsaneBR's Avatar
 
Join Date: Feb 2018
Posts: 104
Reputation: 8
Default Re: Sistema de Banimento de Serial

Quote:
Originally Posted by MateGPlay View Post
Como pego realmente o Serial?
O SA-MP não fornece ferramentas para isto, o máximo é este GPCI, porém "falho", você teria que programar um SOFTWARE para tal coisa.
InsaneBR is offline   Reply With Quote
Old 19/01/2019, 08:11 PM   #7
MateGPlay
Big Clucker
 
MateGPlay's Avatar
 
Join Date: Jan 2018
Location: Florianópolis, Santa Catarina
Posts: 119
Reputation: 1
Default Re: Sistema de Banimento de Serial

Quote:
Originally Posted by InsaneBR View Post
Aumente o tamanho da string que armazena o que foi digitado.
No seu caso a variável é tmp.
msm aumentando continua aparecendo metade do serial.
MateGPlay is offline   Reply With Quote
Old 19/01/2019, 08:45 PM   #8
InsaneBR
Big Clucker
 
InsaneBR's Avatar
 
Join Date: Feb 2018
Posts: 104
Reputation: 8
Default Re: Sistema de Banimento de Serial

Adapte o código que passei da maneira que desejar que irá resolver.
InsaneBR is offline   Reply With Quote
Old 19/01/2019, 10:34 PM   #9
MateGPlay
Big Clucker
 
MateGPlay's Avatar
 
Join Date: Jan 2018
Location: Florianópolis, Santa Catarina
Posts: 119
Reputation: 1
Default Re: Sistema de Banimento de Serial

Quote:
Originally Posted by InsaneBR View Post
Adapte o código que passei da maneira que desejar que irá resolver.
Mesmo usando seu código usei a função printf e so apareceu metade do serial.
MateGPlay is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[FilterScript] Sistema de banimento Paulthaz Lançamentos/Releases 2 10/11/2017 04:48 PM
[Include] DSBan [Sistema de Banimento] Don_Speed Lançamentos/Releases 5 22/09/2017 05:05 PM
[Pedido] Sistema de banimento MySQL pWesley Português/Portuguese 2 14/02/2015 12:19 AM
[Ajuda] Erro Sistema de ban serial romulogomez Português/Portuguese 6 04/01/2015 07:25 PM
[Ajuda] Preciso de um Sistema de Banir o Serial do HD EquipeBMR Português/Portuguese 5 03/03/2014 03:20 PM


All times are GMT. The time now is 07:07 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.