17.11.2012, 15:52
Eia galera blz? converti meu sistema de salvamento para DOF2 mais ainda estб com erros, eu consigo logar sem senha ou com senha errada, e no arquivo do player salva a senha assim : Senha = я.
Sistema:
Sistema:
pawn Код:
// PINFO //
enum pINFO
{
Wanted,
Money,
Admin,
Doador,
Score,
Matou,
Morreu,
Ratio,
Avisos
};
new Tentativas[MAX_PLAYERS];
new PlayerInfo[MAX_PLAYERS][pINFO];
public OnGameModeExit()
{
DOF2_Exit();
return 1;
}
//============================== comandos ======================================
CMD:register(playerid,params[])
{
new
Senha[32],
arquivoplayers[64]
;
format(arquivoplayers,sizeof(arquivoplayers),"GP/Contas/%s.txt",Nome(playerid));
if(GetPVarInt(playerid,"Registrado") == 1) return SendClientMessage(playerid,red,"You are already registered.");
if(sscanf(params,"u[32]",Senha)) return SendClientMessage(playerid,red,"USAGE: /register [password]");
if(DOF2_FileExists(arquivoplayers))
{
SendClientMessage(playerid,red,"ERROR: This account is already registered");
}
else
{
DOF2_CreateFile(arquivoplayers);
DOF2_SetString(arquivoplayers,"Senha",Senha);
DOF2_SetInt(arquivoplayers,"Wanted",0);
DOF2_SetInt(arquivoplayers,"Money",0);
DOF2_SetInt(arquivoplayers,"Admin",0);
DOF2_SetInt(arquivoplayers,"Doador",0);
DOF2_SetInt(arquivoplayers,"Score",0);
DOF2_SetInt(arquivoplayers,"Matou",0);
DOF2_SetInt(arquivoplayers,"Morreu",0);
GivePlayerMoney(playerid,15000);
PlayerInfo[playerid][Admin] = 1;
SalvarPlayer(playerid);
DOF2_SaveFile();
SendClientMessage(playerid,yellow,"Account registerd!");
}
SetPVarInt(playerid,"Registrado",1);
SetPVarInt(playerid,"Logado",1);
return 1;
}
//******************************************************************************
CMD:login(playerid,params[])
{
new
Senha[32],
arquivoplayers[64]
;
if(GetPVarInt(playerid, "Logado") == 1) return SendClientMessage(playerid,red,"You are already logged");
if(GetPVarInt(playerid, "Registrado") == 0) return SendClientMessage(playerid,red,"You are not registered. Try /register");
format(arquivoplayers,sizeof(arquivoplayers),"GP/Contas/%s.txt",Nome(playerid));
if(sscanf(params,"u[32]",Senha)) return SendClientMessage(playerid,red,"USAGE: /login [password]");
if(!DOF2_FileExists(arquivoplayers)) return SendClientMessage(playerid,red,"ERROR: This account is not registered");
if(strcmp(Senha,DOF2_GetString(arquivoplayers,"Senha"),true))
{
GivePlayerMoney(playerid,(ResetPlayerMoney(playerid),DOF2_GetInt(arquivoplayers,"Money")));
SetPlayerScore(playerid,DOF2_GetInt(arquivoplayers,"Score"));
SetPlayerWantedLevel(playerid,DOF2_GetInt(arquivoplayers,"Wanted"));
PlayerInfo[playerid][Admin] = DOF2_GetInt(arquivoplayers,"Admin");
PlayerInfo[playerid][Doador] = DOF2_GetInt(arquivoplayers,"Doador");
PlayerInfo[playerid][Matou] = DOF2_GetInt(arquivoplayers,"Matou");
PlayerInfo[playerid][Morreu] = DOF2_GetInt(arquivoplayers,"Morreu");
SalvarPlayer(playerid);
DOF2_SaveFile();
SendClientMessage(playerid,yellow,"Account logged!");
SetPVarInt(playerid,"Logado",1);
}
else
if(Tentativas[playerid] == 2)
{
SendClientMessage(playerid,red,"You got kicked for missing the password for that account 3 times");
Kick(playerid);
return 1;
}
else
{
SendClientMessage(playerid,red,"Incorret password. Try again.");
Tentativas[playerid] ++;
}
return 1;
}
//==============================================================================
stock SalvarPlayer(playerid)
{
new arquivoplayers[64];
format(arquivoplayers,sizeof(arquivoplayers),"GP/Contas/%s.txt",Nome(playerid));
DOF2_SetInt(arquivoplayers,"Money",GetPlayerMoney(playerid));
DOF2_SetInt(arquivoplayers,"Score",GetPlayerScore(playerid));
DOF2_SetInt(arquivoplayers,"Wanted",GetPlayerWantedLevel(playerid));
DOF2_SetInt(arquivoplayers,"Admin",PlayerInfo[playerid][Admin]);
DOF2_SetInt(arquivoplayers,"Doador",PlayerInfo[playerid][Doador]);
DOF2_SetInt(arquivoplayers,"Matou",PlayerInfo[playerid][Matou]);
DOF2_SetInt(arquivoplayers,"Morreu",PlayerInfo[playerid][Morreu]);
DOF2_SaveFile();
return 0;
}
//==============================================================================