[Ajuda] A maldiзгo do dinheiro
#1

"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
Код:
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"));
	}
}
Eu uso este ant money hack que peguei em uma GM '-'
Код:
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;
Reply
#2

Isso deve resolver......

pawn Код:
public AtualizarGrana()
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        ResetPlayerMoney(i);
        GivePlayerMoney(i, Grana[playerid]);
    }
}
Reply
#3

Quote:
Originally Posted by focaximubh
Посмотреть сообщение
Isso deve resolver......

pawn Код:
public AtualizarGrana()
{
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
        ResetPlayerMoney(i);
        GivePlayerMoney(i, Grana[playerid]);
    }
}
Se fosse o problema nesta parte sempre iria spawnar dobrando o dinheiro, mas como eu disse quando faz o login logo depois do samp-server ser iniciado nгo acontece do dinheiro dobrar, este cуdigo funciona normalmente como estб, quando usava dini a 3 anos atras usava esse codigo e nгo acontecia isso.
Reply
#4

Man da 2k a casa login do cara
Reply
#5

PHP код:
public OnPlayerConnect(playerid)
{
        
    
ResetPlayerGrana(playerid);
    
CarregarDados(playerid);
    return 
1;
}
...
public 
OnPlayerDisconect(playerid)
{
    
SalvarDados(playerid);
    
ResetPlayerGrana(playerid);
    return 
1;

Reply
#6

Quote:
Originally Posted by glederson
Посмотреть сообщение
PHP код:
public OnPlayerConnect(playerid)
{
        
    
ResetPlayerGrana(playerid);
    
CarregarDados(playerid);
    return 
1;
}
...
public 
OnPlayerDisconect(playerid)
{
    
SalvarDados(playerid);
    
ResetPlayerGrana(playerid);
    return 
1;

Й isso mesmo, nem tinha me tocado.
Reply


Forum Jump:


Users browsing this thread: 4 Guest(s)