[Ajuda] Salvamento de Skin fail apуs /gmx
#1

@Atualizado 28/01 аs 14:10

Descobri uma coisa, a skin vai para a database certinho, mais quando o /gmx acaba e o servidor volta, o arquivo na database da skin volta pro 0.

Ex:
Utilizei /gmx, salvo tudo certinho.
Volto para a tela de login, tudo estб certinho, menos a skin que volta para o 0.

Se ficar sem o SetTimer vai salvar normal, o problema й quando da o GMX, sу o arquivo da skin que й setado pra 0 (quando termina o restart).

PHP код:
CMD:gmx(playerid)
{
    if(
xPlayerInfo[playerid][xAdmin] < 3000) return SendClientMessage(playeridxBranco"{CCCCCC}[ {FF0000}SERVER {CCCCCC}]:{E9EBE8} Vocк nгo tem permissгo para utilizar o comando.");
    for(new 
0MAX_PLAYERSi++)
    {
        if(
IsPlayerConnected(i))
        {
            new 
Celulas[201];
            
xPlayerInfo[i][xLevel] = GetPlayerScore(i);
            
xPlayerInfo[i][xMoney] = GetPlayerMoney(i);
            
xPlayerInfo[i][xSkin] = GetPlayerSkin(i);
            
format(Celulas200"UPDATE usuarios SET Admin='%i', Score='%i', Roupa='%d', Dinheiro='%i' WHERE Nick='%s'"xPlayerInfo[i][xAdmin], xPlayerInfo[i][xLevel], xPlayerInfo[i][xSkin], xPlayerInfo[i][xMoney], nomePlayer(i));
             
mysql_tquery(MySQLConnectCelulas#, #);
             
SetTimerEx("xPuxandoGMX"5000false"i"i);
        }
    }
    return 
1;
}
forward xPuxandoGMX();
public 
xPuxandoGMX()
{
    
SendRconCommand(#gmx);
}
// Jб tentei a Public com return e sem return, resulta no mesmo... 
Reply
#2

@UP

Tуpico arrumado, achei a causa do erro.
Й na GMX que estб o erro, alguйm sabe como arrumar?

Desculpem pelo UP, й que eu achei a verdadeira causa do problema.
Reply
#3

cria um timer para executar o comando na rcon
Reply
#4

Quote:
Originally Posted by iTzDemon
Посмотреть сообщение
cria um timer para executar o comando na rcon
Nгo adiantou.
O dinheiro e outras coisas salvaram normalmente...

PHP код:
forward xPuxandoGMX();
public 
xPuxandoGMX()
{
    
SendRconCommand(#gmx);
    
return 1;

PHP код:
CMD:gmx(playerid)
{
    if(
xPlayerInfo[playerid][xAdmin] < 3000) return SendClientMessage(playeridxBranco"{CCCCCC}[ {FF0000}SERVER {CCCCCC}]:{E9EBE8} Vocк nгo tem permissгo para utilizar o comando.");
    for(new 
0MAX_PLAYERSi++)
    {
        new 
Celulas[201];
        
xPlayerInfo[i][xLevel] = GetPlayerScore(i);
        
xPlayerInfo[i][xMoney] = GetPlayerMoney(i);
        
format(Celulas200"UPDATE usuarios SET Admin='%i', Score='%i', Skin='%i', Dinheiro='%i' WHERE Nick='%s'"xPlayerInfo[i][xAdmin], xPlayerInfo[i][xLevel], GetPlayerSkin(i), xPlayerInfo[i][xMoney], nomePlayer(i));
         
mysql_tquery(MySQLConnectCelulas#, #);
    
}
     
SetTimerEx "xPuxandoGMX" 5000 false"i" i); // testei com playerid tambйm, jб que sу eu estou online, e nгo deu certo.
    
return 1;

Reply
#5

Sua query update estб incorreta.

Cade a clausula Where? Como o Update vai saber no banco de dados qual player salvar?

Tem que ter algo como: "Where `nick` = '%s'"...
Reply
#6

Quote:
Originally Posted by JoaoPedro
Посмотреть сообщение
Sua query update estб incorreta.

Cade a clausula Where? Como o Update vai saber no banco de dados qual player salvar?

Tem que ter algo como: "Where `nick` = '%s'"...
Ela estб ali no final da Update, e como disse acima, salva o dinheiro, nivel de adm, sу nгo salva a skin.
Reply
#7

Tentas as seguintes alternativas:
- Fazer debug no valor do GetPlayerSkin
- Trocar no format o '%i' por '%d' (sem sentido mas nгo custa ver)
- Verificar se o nome da tabela no mysql estб Skin com 's' maisculo
- fazer um if antes de executar a query para verificar se o jogador estб online.;

Se nenhuma dessas forem entгo nгo sei. Nгo to afim de ficar analisando cуdigo agora....
Reply
#8

Quote:
Originally Posted by JoaoPedro
Посмотреть сообщение
Tentas as seguintes alternativas:
- Fazer debug no valor do GetPlayerSkin
- Trocar no format o '%i' por '%d' (sem sentido mas nгo custa ver)
- Verificar se o nome da tabela no mysql estб Skin com 's' maisculo
- fazer um if antes de executar a query para verificar se o jogador estб online.;

Se nenhuma dessas forem entгo nгo sei. Nгo to afim de ficar analisando cуdigo agora....
Fiz tudo, mudei o "Skin" para "Roupa" (eu mudei certinho no GM e na database) mas tambйm nгo adiantou.

Coloquei o debug antes da linha de salvamento e depois, e retornou certinho o nъmero da Skin.
Reply
#9

@UP

Bom galera, descobri o que realmente estб acontecendo:

------------------------------------------------------------

@Atualizado 28/01 аs 14:10

Descobri uma coisa, a skin vai para a database certinho, mais quando o /gmx acaba e o servidor volta, o arquivo na database da skin volta pro 0.

Ex:
Utilizei /gmx, salvo tudo certinho.
Volto para a tela de login, tudo estб certinho, menos a skin que volta para o 0.

Se ficar sem o SetTimer vai salvar normal, o problema й quando da o GMX, sу o arquivo da skin que й setado pra 0 (quando termina o restart).

PHP код:
CMD:gmx(playerid)
{
    if(
xPlayerInfo[playerid][xAdmin] < 3000) return SendClientMessage(playeridxBranco"{CCCCCC}[ {FF0000}SERVER {CCCCCC}]:{E9EBE8} Vocк nгo tem permissгo para utilizar o comando.");
    for(new 
0MAX_PLAYERSi++)
    {
        if(
IsPlayerConnected(i))
        {
            new 
Celulas[201];
            
xPlayerInfo[i][xLevel] = GetPlayerScore(i);
            
xPlayerInfo[i][xMoney] = GetPlayerMoney(i);
            
xPlayerInfo[i][xSkin] = GetPlayerSkin(i);
            
format(Celulas200"UPDATE usuarios SET Admin='%i', Score='%i', Roupa='%d', Dinheiro='%i' WHERE Nick='%s'"xPlayerInfo[i][xAdmin], xPlayerInfo[i][xLevel], xPlayerInfo[i][xSkin], xPlayerInfo[i][xMoney], nomePlayer(i));
             
mysql_tquery(MySQLConnectCelulas#, #);
             
SetTimerEx("xPuxandoGMX"5000false"i"i);
        }
    }
    return 
1;
}
forward xPuxandoGMX();
public 
xPuxandoGMX()
{
    
SendRconCommand(#gmx);
}
// Jб tentei a Public com return e sem return, resulta no mesmo... 
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)