[Ajuda] Dialogs
#1

Bom, meu servidor uso gpci ban e ban por ip+nickname.

O cуdigo atй roda de boa, porem os dialog nгo aparece tudo oque escrevi, aparece sу 'Horiario: 00:00' sу isso :/

E se alguйm souber algum jeito de deixar o cуdigo 'Mas rбpido e menor' eu agradeзo. xD

pawn Код:
public OnPlayerRequestClass(playerid, classid)
{
    if(ServerInfo[CheckSerialBans] == true)
    {
        new gpci_cache[46], teban[124], banSTR[124];
        gpci(playerid, gpci_cache, sizeof(gpci_cache));

        format(teban,sizeof(teban),"SELECT * FROM sbans WHERE nick = '%s' OR serial = '%s'",nome(playerid),gpci_cache);
        mysql_query(mysql, teban);
        mysql_store_result();

        if(mysql_num_rows() > 0)
        {
            static result[350],admin[25],motivo[40],serial[46],dia,mes,ano,hora,minutos;

            if(mysql_fetch_row(result))
            {
                sscanf(result,"p<|>s[25]s[40]s[46]ddddd",admin,motivo,serial,dia,mes,ano,hora,minutos);
            }

            static str[512];

            format(str,sizeof(str),"{FF0000}Admin: {FFFFFF}%s\n",admin);
            format(str,sizeof(str),"{FF0000}Motivo: {FFFFFF}%s\n",motivo);
            format(str,sizeof(str),"{FF0000}Serial: {FFFFFF}%s\n",serial);
            format(str,sizeof(str),"{FF0000}Data: {FFFFFF}%02d/%02d/%d\n\n",dia,mes,ano);
            format(str,sizeof(str),"{FF0000}Horario: {FFFFFF}%02d:%02d\n",hora,minutos);
            ShowPlayerDialog(playerid,225,DIALOG_STYLE_MSGBOX,"SERIAL BANIDO DO SERVIDOR!",str,"Sair","");

            format(banSTR,sizeof(banSTR),"%s foi kickado (SERIAL BANIDO)",nome(playerid));
            SendAdminMessage(Amarelo,banSTR);

            Kick(playerid);
            writeLog(AdminLog,banSTR);
            return 0;
        }
        mysql_free_result();
        return 0;
    }

    if(ServerInfo[CheckBans] == true)
    {
        static leban[124],lep[16],banSTR[64];
        GetPlayerIp(playerid,lep,sizeof(lep));

        format(leban,sizeof(leban),"SELECT * FROM bans WHERE nick = '%s' OR ip = '%s'",nome(playerid),lep);
        mysql_query(mysql, leban);
        mysql_store_result();

        if(mysql_num_rows() > 0)
        {
            static result[350],admin[25],motivo[40],dia,mes,ano,hora,minutos;

            if(mysql_fetch_row(result))
            {
                sscanf(result,"p<|>s[25]s[40]ddddd",admin,motivo,dia,mes,ano,hora,minutos);
            }

            static str[512];

            format(str,sizeof(str),"{FF0000}Admin: {FFFFFF}%s\n",admin);
            format(str,sizeof(str),"{FF0000}Motivo: {FFFFFF}%s\n",motivo);
            format(str,sizeof(str),"{FF0000}Data: {FFFFFF}%02d/%02d/%d\n\n",dia,mes,ano);
            format(str,sizeof(str),"{FF0000}Horario: {FFFFFF}%02d:%02d\n",hora,minutos);
            ShowPlayerDialog(playerid,225,DIALOG_STYLE_MSGBOX,"Conta ou IP banido do servidor!",str,"Sair","");

            format(banSTR,sizeof(banSTR),"%s foi kickado (CONTA OU IP BANIDO)",nome(playerid));
            SendAdminMessage(Amarelo,banSTR);

            Kick(playerid);
            writeLog(AdminLog,banSTR);
            return 0;
        }
        mysql_free_result();
        return 0;
    }
    return 1;
}
Reply
#2

Usa strcat ao invйs de format
Reply
#3

Como JonathanFeitosa disse, strcat й mais rбpido e tambйm o correto.
Reply
#4

O correto й oque os membros acima citaram, porйm tambйm da para fazer desta maneira.
PHP код:
public OnPlayerRequestClass(playeridclassid)
{
    if(
ServerInfo[CheckSerialBans] == true)
    {
        new 
gpci_cache[46], teban[124], banSTR[124];
        
gpci(playeridgpci_cachesizeof(gpci_cache));
        
format(teban,sizeof(teban),"SELECT * FROM sbans WHERE nick = '%s' OR serial = '%s'",nome(playerid),gpci_cache);
        
mysql_query(mysqlteban);
        
mysql_store_result();
        if(
mysql_num_rows() > 0)
        {
            static 
result[350],admin[25],motivo[40],serial[46],dia,mes,ano,hora,minutos;
            if(
mysql_fetch_row(result))
            {
                
sscanf(result,"p<|>s[25]s[40]s[46]ddddd",admin,motivo,serial,dia,mes,ano,hora,minutos);
            }
            static 
str1[255], str2[255], str3[255], str4[255], str5[255], str6[255];
            
format(str1,sizeof(str1),"{FF0000}Admin: {FFFFFF}%s\n",admin);
            
format(str2,sizeof(str2),"{FF0000}Motivo: {FFFFFF}%s\n",motivo);
            
format(str3,sizeof(str3),"{FF0000}Serial: {FFFFFF}%s\n",serial);
            
format(str4,sizeof(str4),"{FF0000}Data: {FFFFFF}%02d/%02d/%d\n\n",dia,mes,ano);
            
format(str5,sizeof(str5),"{FF0000}Horario: {FFFFFF}%02d:%02d\n",hora,minutos);
            
format(str6,sizeof(str6),"%s%s%s%s%s",str1,str2,str3,str4,str5);
            
ShowPlayerDialog(playerid,225,DIALOG_STYLE_MSGBOX,"SERIAL BANIDO DO SERVIDOR!",str6,"Sair","");
            
format(banSTR,sizeof(banSTR),"%s foi kickado (SERIAL BANIDO)",nome(playerid));
            
SendAdminMessage(Amarelo,banSTR);
            
Kick(playerid);
            
writeLog(AdminLog,banSTR);
            return 
0;
        }
        
mysql_free_result();
        return 
0;
    }
    if(
ServerInfo[CheckBans] == true)
    {
        static 
leban[124],lep[16],banSTR[64];
        
GetPlayerIp(playerid,lep,sizeof(lep));
        
format(leban,sizeof(leban),"SELECT * FROM bans WHERE nick = '%s' OR ip = '%s'",nome(playerid),lep);
        
mysql_query(mysqlleban);
        
mysql_store_result();
        if(
mysql_num_rows() > 0)
        {
            static 
result[350],admin[25],motivo[40],dia,mes,ano,hora,minutos;
            if(
mysql_fetch_row(result))
            {
                
sscanf(result,"p<|>s[25]s[40]ddddd",admin,motivo,dia,mes,ano,hora,minutos);
            }
            static 
str1[255], str2[255], str3[255], str4[255], str5[255];
            
format(str1,sizeof(str1),"{FF0000}Admin: {FFFFFF}%s\n",admin);
            
format(str2,sizeof(str2),"{FF0000}Motivo: {FFFFFF}%s\n",motivo);
            
format(str3,sizeof(str3),"{FF0000}Data: {FFFFFF}%02d/%02d/%d\n\n",dia,mes,ano);
            
format(str4,sizeof(str4),"{FF0000}Horario: {FFFFFF}%02d:%02d\n",hora,minutos);
            
format(str5,sizeof(str5),"%s%s%s%s",str1,str2,str3,str4);
            
ShowPlayerDialog(playerid,225,DIALOG_STYLE_MSGBOX,"Conta ou IP banido do servidor!",str5,"Sair","");
            
format(banSTR,sizeof(banSTR),"%s foi kickado (CONTA OU IP BANIDO)",nome(playerid));
            
SendAdminMessage(Amarelo,banSTR);
            
Kick(playerid);
            
writeLog(AdminLog,banSTR);
            return 
0;
        }
        
mysql_free_result();
        return 
0;
    }
    return 
1;

Reply
#5

Vou testar aqui Madruga, vlw.
Reply
#6

Quote:
Originally Posted by s4kuL
Посмотреть сообщение
Vou testar aqui Madruga, vlw.
Olha o jeito que eu fiz .-.
Reply
#7

Deu certo, porem o problema tб no MySQL creio eu.

pawn Код:
[20:10:41] sscanf warning: Unknown format specifier '<', skipping.
[20:10:41] sscanf warning: Unknown format specifier '|', skipping.
[20:10:41] sscanf warning: Unknown format specifier '>', skipping.
Reply
#8

PHP код:
if(mysql_fetch_row(result)) 

    
sscanf(result,"p<|>s[25]s[40]s[46]ddddd",admin,motivo,serial,dia,mes,ano,hora,minutos); 

PHP код:
if(mysql_fetch_row(result))
{
    
sscanf(result,"s[25]s[40]s[46]ddddd",admin,motivo,serial,dia,mes,ano,hora,minutos);

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)