21.02.2012, 10:24
Olб.
Estou a usar a Login Box do Falcon.. Passei ela pro GM. Quase tudo funcionando..
Sу tem um pequeno ou grande bug, hehe..
Na hora do login se digita a senha errada com mais de 6 caracteres, ele reseta a senha..
Sendo possivel registrar o nick novamente sem perder os dados..
Ou sejб. й possivel roubar uma conta apenas digitando uma senha com mais de 6 caracteres errados..
Aqui estб o cуdigo de salvar e carregar dados:
Acho que isso й tudo que vocкs precisam para me ajudar.
Estou a usar a Login Box do Falcon.. Passei ela pro GM. Quase tudo funcionando..
Sу tem um pequeno ou grande bug, hehe..
Na hora do login se digita a senha errada com mais de 6 caracteres, ele reseta a senha..
Sendo possivel registrar o nick novamente sem perder os dados..
Ou sejб. й possivel roubar uma conta apenas digitando uma senha com mais de 6 caracteres errados..
Aqui estб o cуdigo de salvar e carregar dados:
pawn Код:
stock SalvarDadosPlayer(playerid)
{
static Float:PosX, Float:PosY, Float:PosZ, Float:Vida, Float:Colete;
GetPlayerHealth(playerid, Vida);
GetPlayerArmour(playerid, Colete);
GetPlayerPos(playerid, PosX, PosY, PosZ);
GetPlayerName(playerid, nome, sizeof(nome));
format(arquivo, sizeof(arquivo), ContasPlayers, nome);
if(!dini_Exists(arquivo)) dini_Create(arquivo);
dini_FloatSet(arquivo, "Level", Level[playerid]);
dini_FloatSet(arquivo, "Exp", Respeito[playerid]);
dini_IntSet(arquivo, "Dinheiro", GetPlayerMoney(playerid));
dini_IntSet(arquivo, "LevelProcurado", GetPlayerWantedLevel(playerid));
dini_IntSet(arquivo, "SkinAtual", GetPlayerSkin(playerid));
dini_FloatSet(arquivo, "Vida", Vida);
dini_FloatSet(arquivo, "Colete", Colete);
#if defined ContinuarUltimaPosicao
dini_FloatSet(arquivo, "PosX", PosX);
dini_FloatSet(arquivo, "PosY", PosY);
dini_FloatSet(arquivo, "PosZ", PosZ);
dini_IntSet(arquivo, "Interior", GetPlayerInterior(playerid));
dini_IntSet(arquivo, "VirtualWorld", GetPlayerVirtualWorld(playerid));
#endif
dini_IntSet(arquivo, "TotalDeVezesMorreu", TotalDeVezesMorreu[playerid]);
dini_IntSet(arquivo, "TotalDeVezesMatou", TotalDeVezesMatou[playerid]);
return 0x1;
}
pawn Код:
stock CarregarDadosPlayer(playerid)
{
GetPlayerName(playerid, nome, sizeof(nome));
format(arquivo, sizeof(arquivo), ContasPlayers, nome);
if(!dini_Exists(arquivo)) return 0x1;
SetPlayerScore(playerid, dini_Int(arquivo, "Level"));
GivePlayerMoney(playerid, dini_Int(arquivo, "Dinheiro"));
SetPlayerWantedLevel(playerid, dini_Int(arquivo, "LevelProcurado"));
TotalDeVezesMorreu[playerid] = dini_Int(arquivo, "TotalDeVezesMorreu");
TotalDeVezesMatou[playerid] = dini_Int(arquivo, "TotalDeVezesMatou");
return 0x1;
}
pawn Код:
public OnGameModeExit()
{
for(new ii, ff = GetMaxPlayers(); ii < ff; ii++)
{
if(!IsPlayerConnected(ii)) continue;
SalvarDadosPlayer(ii);
}
return 1;
}