28/10/2020 12:44
Resolvi refazer meu sistema de login e registro com base em um código mais limpo. O sistema de registro tá funcionando corretamente, mas o sistema de login não carrega os dados do jogador. Acredito que seja alguma falha que deixei passar na stock.
Código:
if(dialogid == DIALOG_LOGIN)
{
if(response)
{
if(!strcmp(inputtext, DOF2_GetString(File, "Password")) && !isnull(inputtext))
{
TimerLvlUP[playerid] = SetTimerEx("TimerLevelUP", 600000, 1, "i", playerid);
LoadAccount(playerid);
Connected[playerid] = true;
SetInfoLogin[playerid] = false;
}
else
{
ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "{FFFFFF}Projeto {32CD32}RPG", String, "Entrar", "Sair");
SendClientMessage(playerid, -1, "{FF0000}| ERRO | Senha incorreta");
Attempts[playerid]++;
if(Attempts[playerid] == 5)
{
SendClientMessage(playerid, -1, "{FF0000}| INFO | Você foi expulso(a) por digitar sua senha incorretamente 5 vezes");
Attempts[playerid] = 0;
Kick(playerid);
}
}
}
else
{
SendClientMessage(playerid, -1, "{FF0000}| INFO | Saindo...");
Kick(playerid);
}
Código:
stock LoadAccount(playerid)
{
format(File, sizeof(File), "Contas/%s.ini", GetPlayerNameEx(playerid));
Health[playerid] = DOF2_GetFloat(File, "Health");
Score[playerid] = DOF2_GetInt(File, "Score");
Money[playerid] = DOF2_GetInt(File, "Money");
Gender[playerid] = DOF2_GetInt(File, "Gender");
Skin[playerid] = DOF2_GetInt(File, "Skin");
PosX[playerid] = DOF2_GetFloat(File, "PosX");
PosY[playerid] = DOF2_GetFloat(File, "PosY");
PosZ[playerid] = DOF2_GetFloat(File, "PosZ");
PosA[playerid] = DOF2_GetFloat(File, "PosA");
Interior[playerid] = DOF2_GetInt(File, "Interior");
VirtualWorld[playerid] = DOF2_GetInt(File, "VirtualWorld");
SpawnPlayer(playerid);
SetPlayerHealth(playerid, Health[playerid]);
SetPlayerScore(playerid, Score[playerid]);
GivePlayerMoney(playerid, Money[playerid]);
SetPlayerSkin(playerid, Skin[playerid]);
SetPlayerPos(playerid, PosX[playerid], PosY[playerid], PosZ[playerid]);
SetPlayerFacingAngle(playerid, PosA[playerid]);
SetPlayerInterior(playerid, Interior[playerid]);
SetPlayerVirtualWorld(playerid, VirtualWorld[playerid]);
}