Problema con un guardado
#1

Hola, bueno resulta que estoy haciendo un gamemode pero todo iba bien hasta que me empezу a fallar es en el guardado del dinero al desconectarse no guarda el dinero, es el ъnico que falla, estoy seguro que es en el Callback OnPlayerDisconnect
Dejo cуdigo.

Код:
pDinero,

OnPlayerSpawn
Informacion[playerid][pDinero] = GetPlayerMoney(playerid);

GivePlayerMoney(playerid, Informacion[playerid][pDinero]);


Forward de guardado
INI_WriteInt(File,"Dinero",Informacion[playerid][pDinero]); 


Forward de cargado
    INI_Int("Dinero",Informacion[playerid][pDinero]);


OnPlayerDisconnect
    Informacion[playerid][pDinero] = GetPlayerMoney(playerid);
Reply
#2

Create un cargado de datos del jugador, por ej:

forward Cargardatosjugador(playerid);
public Cargardatosjugador(playerid)
{
GivePlayerMoney(playerid, Informacion[playerid][pDinero]);
return 1;
}

Es decir, los datos que guardas se los "devuelves" creando esta funcion que no es lo mismo
que el forward de cargado. Prueba eso
Reply
#3

Create un cargado de datos del jugador, por ej:

forward Cargardatosjugador(playerid);
public Cargardatosjugador(playerid)
{
GivePlayerMoney(playerid, Informacion[playerid][pDinero]);
return 1;
}

Es decir, los datos que guardas se los "devuelves" creando esta funcion que no es lo mismo
que el forward de cargado. Cuando el jugador conecta y se reconoce la cuenta existente
le devuelves sus cosas por ej aqui el dinero. Prueba eso
Reply
#4

En OnPLayerSpawn saca
Код:
Informacion[playerid][pDinero] = GetPlayerMoney(playerid);
Y deja
Код:
GivePlayerMoney(playerid, Informacion[playerid][pDinero]);
Y en OnPlayerDisconnect saca
Код:
Informacion[playerid][pDinero] = GetPlayerMoney(playerid);
Y en donde tengas que darle dinero al jugador, osea, en Los GivePlayerMoney cambialo por DarDinero(playerid,monto); y para quitar QuitarDinero(playerid,monto); y agrega esto al ultimo:
Код:
stock DarDinero(playerid,monto)
{
Informacion[playerid][pDinero] += monto;
GivePlayerMoney(playerid,monto);
}

stock QuitarDinero(playerid,monto)
{
Informacion[playerid][pDinero] -= monto;
GivePlayerMoney(playerid,-monto);
}
Obvia que al GivePlayerMoney del OnPlayerSpawn tenes que dejalo asн, a los otros GivePlayerMoney lo cambias por DarDinero o QuitarDinero depende de lo que queres hacer
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)