MYSQL, atualizar -
Lucca-Design - 07.01.2015
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(playerid, cmdtext[])
{
if (strcmp("/test", cmdtext, true, 10) == 0)
{
print("+10");
atualizarGrana(playerid, 10);
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(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", "i", playerid);
pInfo[playerid][Dinheiro] += quantia;
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]);
}
Re: MYSQL, atualizar -
Skream - 07.01.2015
Eu nгo entendi direito o que vocк quer.
Re: MYSQL, atualizar -
Lucca-Design - 07.01.2015
Imaginei, irei grava um vнdeo com o problema... Um minuto...
Re: MYSQL, atualizar -
Skream - 07.01.2015
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);
}