06.07.2016, 22:38
"A maldiзгo do dinheiro em dobro"
Seguinte ao jogador fazer uma missгo de tutorial ele recebe $1000 se ele sair com esse dinheiro salva normalmente atй ai tudo bem, sу que ao ele spawnar em vez do jogador receber o dinheiro que ele tinha quando saiu ele recebe o dobro do valor que foi salvo.
MAS AI TEM ISSO que me deixou intrigado nгo sei se vгo entender mas e o seguinte:
Supondo que a conta do jogador salvou $2000 e o servidor acabou de ser ligado quando ele fazer o login e spawnar ele recebe normalmente os $2000.
Se ele sair salva os $2000, mas quando ele faz o login e spawna pela segunda vez apуs o servidor ligado o dinheiro dobra seu valor vai pra $4000, ai por diante sempre dobra $8000 $16000... mas o que eu nгo entendo й como isso acontece e porque caralius quando da o primeiro spawn quando o servidor e iniciado recebe o valor correto?
stock's que uso para salvar os dados tudo salva corretamente ( Score, Admin, Vip...) menos o dinheiro
Eu uso este ant money hack que peguei em uma GM '-'
Seguinte ao jogador fazer uma missгo de tutorial ele recebe $1000 se ele sair com esse dinheiro salva normalmente atй ai tudo bem, sу que ao ele spawnar em vez do jogador receber o dinheiro que ele tinha quando saiu ele recebe o dobro do valor que foi salvo.
MAS AI TEM ISSO que me deixou intrigado nгo sei se vгo entender mas e o seguinte:
Supondo que a conta do jogador salvou $2000 e o servidor acabou de ser ligado quando ele fazer o login e spawnar ele recebe normalmente os $2000.
Se ele sair salva os $2000, mas quando ele faz o login e spawna pela segunda vez apуs o servidor ligado o dinheiro dobra seu valor vai pra $4000, ai por diante sempre dobra $8000 $16000... mas o que eu nгo entendo й como isso acontece e porque caralius quando da o primeiro spawn quando o servidor e iniciado recebe o valor correto?
stock's que uso para salvar os dados tudo salva corretamente ( Score, Admin, Vip...) menos o dinheiro
Код:
stock SalvarDados(playerid) { DOF2_SetInt(Arquivo(playerid), "Dinheiro", GetPlayerGrana(playerid)); DOF2_SaveFile(); } stock CarregarDados(playerid) { if(DOF2_FileExists(Arquivo(playerid))) { GivePlayerGrana(playerid, DOF2_GetInt(Arquivo(playerid), "Dinheiro")); } }
Код:
public AtualizarGrana() { for(new i = 0; i < MAX_PLAYERS; i++) { ResetPlayerMoney(i); GivePlayerMoney(i, GetPlayerGrana(i)); } } stock GivePlayerGrana(playerid, ammount)return Grana[playerid] += ammount; stock GetPlayerGrana(playerid)return Grana[playerid]; stock ResetPlayerGrana(playerid)return Grana[playerid] = 0;