[Ajuda]Salvamento em Dini. -
IgorMendes - 19.03.2012
Gostaria de que alguem me desse uma luz '-'
Queria aprender a salvar informaзхes como:
Level
Level de Admin
Dinheiro '----'
Ja tentei e nгo consegui.
Este que fiz nгo funciona:
pawn Код:
public RegistrarPlayer(playerid, password[])
{
if(IsPlayerConnected(playerid))
{
new string3[32];
new playername3[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername3, sizeof(playername3));
format(string3, sizeof(string3), "Contas3/%s.ini", playername3);
new File: hFile = fopen(string3, io_write);
if (hFile)
{
strmid(PlayerInfo[playerid][pSenha], password, 0, strlen(password), 255);
new var[32];
format(var, 32, "Key=%s\n", PlayerInfo[playerid][pSenha]);fwrite(hFile, var);
PlayerInfo[playerid][pGrana] = GetPlayerMoney(playerid);
format(var, 32, "Administrador=0\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
format(var, 32, "Dinheiro=150000\n",PlayerInfo[playerid][pGrana]);fwrite(hFile, var);
format(var, 32, "Spawn=0\n",PlayerInfo[playerid][pSpawn]);fwrite(hFile, var);
format(var, 32, "Skin=23\n",PlayerInfo[playerid][pSkin]);fwrite(hFile, var);
format(var, 32, "Level=%s\n",PlayerInfo[playerid][pLevel]);fwrite(hFile, var);
fclose(hFile);
-
pawn Код:
public UpdatedasContas(playerid)
{
if(IsPlayerConnected(playerid))
{
if(gPlayerLogged[playerid])
{
new string3[32];
new playername3[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername3, sizeof(playername3));
format(string3, sizeof(string3), "Contas3/%s.ini", playername3);
new File: hFile = fopen(string3, io_write);
if (hFile)
{
new var[32];
format(var, 32, "Key=%s\n", PlayerInfo[playerid][pSenha]);fwrite(hFile, var);
PlayerInfo[playerid][pGrana] = GetPlayerMoney(playerid);
format(var, 32, "Administrador=%s\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
format(var, 32, "Dinheiro=%s\n",PlayerInfo[playerid][pGrana]);fwrite(hFile, var);
format(var, 32, "Spawn=%s\n",PlayerInfo[playerid][pSpawn]);fwrite(hFile, var);
format(var, 32, "Skin=%s\n",PlayerInfo[playerid][pSkin]);fwrite(hFile, var);
format(var, 32, "Level=%s\n",PlayerInfo[playerid][pLevel]);fwrite(hFile, var);
fclose(hFile);
}
}
}
return 1;
}
-
pawn Код:
public LogarPlayer(playerid,password[])
{
new string2[64];
new playername2[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername2, sizeof(playername2));
format(string2, sizeof(string2), "Contas3/%s.ini", playername2);
new File: UserFile = fopen(string2, io_read);
if ( UserFile )
{
new PassData[256];
new keytmp[256], valtmp[256];
fread( UserFile , PassData , sizeof( PassData ) );
keytmp = ini_GetKey( PassData );
if( strcmp( keytmp , "Key" , true ) == 0 )
{
valtmp = ini_GetValue( PassData );
strmid(PlayerInfo[playerid][pSenha], valtmp, 0, strlen(valtmp)-1, 255);
}
if(strcmp(PlayerInfo[playerid][pSenha],password, true ) == 0 )
{
new key[ 256 ] , val[ 256 ];
new Data[ 256 ];
while ( fread( UserFile , Data , sizeof( Data ) ) )
{
key = ini_GetKey( Data );
if( strcmp( key , "Administrador" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAdmin] = strval( val ); }
if( strcmp( key , "Dinheiro" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pGrana] = strval( val ); }
if( strcmp( key , "Spawn" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pSpawn] = strval( val ); }
if( strcmp( key , "Skin" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pSkin] = strval( val ); }
if( strcmp( key , "Level" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pLevel] = strval( val ); }
}
fclose(UserFile);
}
else
{
SendClientMessage(playerid, BRANCO, "Erro: Senha incorreta.");
SendClientMessage(playerid, RED, "use: /logar(senha)");
fclose(UserFile);
return 1;
}
SpawnPlayer(playerid);
SetSpawnInfo(playerid, PlayerInfo[playerid][pSpawn], PlayerInfo[playerid][pSkin],0.0,0.0,0.0,0,0,0,0,0,0,0);
}
return 1;
}
-
pawn Код:
public SalvarContas()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
UpdatedasContas(i);
}
}
}
Alguem pode me dizer oque esta errado?
Sim o /gmx esta programado para salvar.
Re: [Ajuda]Salvamento em Dini. -
paulor - 19.03.2012
Isso nгo й Dini.
Re: [Ajuda]Salvamento em Dini. -
IgorMendes - 19.03.2012
Oque preciso postar entгo ? '-'
Nгo intendo nada disso.
Re: [Ajuda]Salvamento em Dini. -
ViniBorn - 19.03.2012
Leia esse tуpico >
https://sampforum.blast.hk/showthread.php?tid=327041
Nele fiz um breve tutorial na utilizaзгo de DOF2, que й bem superior a Dini
Re: [Ajuda]Salvamento em Dini. -
Abravanel - 19.03.2012
Um
simples exemplo de como salvar usando
SII:
pawn Код:
#define CallBack_%1(%2) \
forward_%1(%2); \
public_%1(%2)
#define P_PASTA "/Users/%s.ini"
new wh[44];
stock GetName(playerid)
{
new aName[MAX_PLAYER_NAME];
GetPlayerName(playerid, aName, MAX_PLAYER_NAME);
return aName;
}
//Agora й sу colocar isso na callback OnGameModeInit:
/*
new st = 0;
while(++st < MAX_PLAYERS)
{
if(IsPlayerConnected(st))
{
SetTimer("SalvarTodos",60000 * 1, true);
}
}
de 1 em 1 minuto irб salvar as contas dos players conectados.
Ou vocк pode fazer diferente, pode colocar para salvar quando o player disconnectar.
*/
CallBack SalvarTodos()
{
new st = 0;
while(++st < MAX_PLAYERS)
{
format(wh,sizeof(wh), P_PASTA, GetName(st));
if(INI_Exist(wh))
{
INI_Open(wh);
INI_WriteInt("Level", GetPlayerScore(st));
INI_WriteInt("Procurado", GetPlayerWantedLevel(st));
INI_WriteInt("Dinheiro", GetPlayerMoney(st));
INI_Save();
INI_Close();
}
else
{
INI_Create(wh);
INI_Open(wh);
INI_WriteInt("Level", GetPlayerScore(st));
INI_WriteInt("Procurado", GetPlayerWantedLevel(st));
INI_WriteInt("Dinheiro", GetPlayerMoney(st));
INI_Save();
INI_Close();
}
}
return true;
}
or read:
http://forum.sa-mp.com/showthread.ph...03#post1741703
Re: [Ajuda]Salvamento em Dini. -
IgorMendes - 19.03.2012
Gente, consegui bastante coisa, mas o principal nгo :\
Salvar o level de administrador.
Alguem pode me ajudar?
Re: [Ajuda]Salvamento em Dini. -
tonisantolia - 19.03.2012
Este topico fala tudo >>
https://sampforum.blast.hk/showthread.php?tid=320022 << salvamento em dini + PlayerInfo isso deve te ajudar. me da +rep?
Re: [Ajuda]Salvamento em Dini. -
Ricop522 - 19.03.2012
Caro Igor,
Vocк entende o que й "%i" ou "%f" ou "%s"?
%i = Integers ou Inteiros
%f = Floats, ou nъmeros quebrados
%s = String, ou textos
Vocк estб salvando o level de admin como String, porйm ele й um nъmero!
ERRADO:
pawn Код:
format(var, 32, "Administrador=%s\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
format(var, 32, "Dinheiro=%s\n",PlayerInfo[playerid][pGrana]);fwrite(hFile, var);
CORRETO:
pawn Код:
format(var, 32, "Administrador=%i\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var);
format(var, 32, "Dinheiro=%i\n",PlayerInfo[playerid][pGrana]);fwrite(hFile, var);
Reveja os outros e concerte!
Espero ter ajudado

Sugiro ultilizar esse sistema (fwrite) apenas para escrever, pois ele й o mais veloz do sa-mp, agora para ler ultilize o sistema de gerenciamento "DOF2".
Att,
Ricop522
Re: [Ajuda]Salvamento em Dini. -
IgorMendes - 19.03.2012
Nгo funcionou, tem outro cуdigo alem desse meu para salvamento de admin? ;s
Re: [Ajuda]Salvamento em Dini. -
ViniBorn - 19.03.2012
pawn Код:
// A pasta Contas3 deve existir
new VBNome[MAX_PLAYER_NAME],VBString[32];
GetPlayerName(playerid, VBNome, sizeof(VBNome));
format(VBString, sizeof(VBString), "Contas3/%s.ini", VBNome);
DOF2_SetInt(VBString,"Admin",PlayerInfo[playerid][pAdmin]);
DOF2_SaveFile();