[Ajuda] MYSQL, atualizar
#1

Estou quebrando a cabeзa... Gostaria de checar na DB quanto dinheiro o player possui antes de "aumentar" ou "diminuir" o seu $.

Fiz um comando, para teste, dando +$10. Se eu executar somente o comando, quantas vezes quiser, irб funcionar.
Agora o problema: Quando edito o dinheiro manualmente na DB dentro do phpMyAdmin e uso o comando, o dinheiro do player fica intercalando entre a velha e a nova quantidade.

Exemplo:

O player tem no jogo $100. Uso o comando e vai para $110, uso novamente e vai para $120 (O banco de dados tambйm atualiza corretamente atй agora). Nesta hora, irei modificar manualmente no phpMyAdmin para $10 o dinheiro. Volto no jogo, executo o comando e o dinheiro vai para $20 corretamente, mas executo dnv e o dinheiro jб vai para $130 (valor antigo), executo novamente e vai para $30, dps $140, dps $40, dps $150.....

Nгo sei se consegui me expressar... hehe Agradeзo quem conseguir me ajudar. Obrigadao


PHP код:

public OnPlayerCommandText(playeridcmdtext[])
{
    if (
strcmp("/test"cmdtexttrue10) == 0)
    {
        print(
"+10");
        
atualizarGrana(playerid10);
        return 
1;
    }
    return 
0;

PHP код:
forward OnAtualizaGrana(playerid);
public 
OnAtualizaGrana(playerid){
    
pInfo[playerid][Dinheiro] = cache_get_field_content_int(0"Dinheiro");
    return 
1;
}
stock atualizarGrana(playeridquantia){
    new 
query[128];
    
pInfo[playerid][Dinheiro] = 0;
    
mysql_format(mysqlquerysizeof(query), "SELECT * FROM `players` WHERE `Nome` = '%e' LIMIT 1"Name[playerid]);
    
mysql_tquery(mysqlquery"OnAtualizaGrana""i"playerid);
    
pInfo[playerid][Dinheiro] += quantia;
    
mysql_format(mysqlquerysizeof(query), "UPDATE `players` SET `Dinheiro`=%d WHERE `ID`=%d",\
    
pInfo[playerid][Dinheiro], pInfo[playerid][ID]);
    
mysql_tquery(mysqlquery"""");
    
ResetPlayerMoney(playerid);
    
GivePlayerMoney(playeridpInfo[playerid][Dinheiro]);

Reply
#2

Eu nгo entendi direito o que vocк quer.
Reply
#3

Imaginei, irei grava um vнdeo com o problema... Um minuto...
Reply
#4

Analisando o teu cуdigo acho que й isto que vocк queira
pawn Код:
forward OnAtualizaGrana(playerid, novaquantia);
public OnAtualizaGrana(playerid, novaquantia){
    new rows, fields;
    cache_get_data(rows, fields);
    pInfo[playerid][Dinheiro] = cache_get_field_content_int(0, "Dinheiro");
    pInfo[playerid][Dinheiro] += novaquantia;
   
    mysql_format(mysql, query, sizeof(query), "UPDATE `players` SET `Dinheiro`= '%d' WHERE `ID`=%d",\
    pInfo[playerid][Dinheiro], pInfo[playerid][ID]);
    mysql_tquery(mysql, query, "", "");
   
    ResetPlayerMoney(playerid);
    GivePlayerMoney(playerid, pInfo[playerid][Dinheiro]);
    return 1;
}
stock atualizarGrana(playerid, quantia){
    new query[128];

    pInfo[playerid][Dinheiro] = 0;
    mysql_format(mysql, query, sizeof(query), "SELECT * FROM `players` WHERE `Nome` = '%e' LIMIT 1", Name[playerid]);
    mysql_tquery(mysql, query, "OnAtualizaGrana", "ii", playerid, quantia);
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)