BusMan
Ученик
Здравствуйте. Проблема в том, что пароль сохраняется в таком формате: Key=1454QT“½, и при вводе не правильного пароля, всё равно заходит на сервер. Как это можно исправить?
public OnPlayerRegister
public OnPlayerUpdateSG
public OnPlayerLogin
Если ввести не верный пароль:
public OnPlayerRegister
Код:
strmid(PlayerInfo[playerid][pKey], password, 0, strlen(password), 255);
new var[32];
format(var, 32, "Key=%s\n", PlayerInfo[playerid][pKey]);fwrite(hFile, var);
PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
Код:
format(var, 32, "Key=%s\n", PlayerInfo[playerid][pKey]);fwrite(hFile, var);
Код:
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][pKey], valtmp, 0, strlen(valtmp)-1, 255);
}
if(strcmp(PlayerInfo[playerid][pKey],password, true ) == 0 )
{
new key[ 256 ] , val[ 256 ];
new Data[ 256 ];
while ( fread( UserFile , Data , sizeof( Data ) ) )
{
key = ini_GetKey( Data );
Код:
fclose(UserFile);
new logtires = 3 - gPlayerLogTries[playerid];
new loginmsg[300+1];
format(loginmsg,256,"{FFA500}Внимание! Вы ввели неверный пароль!\nУ вас осталось (%d) попытки\nПосле вы будете забанены",logtires);
ShowPlayerDialog(playerid,10008,DIALOG_STYLE_MSGBOX,"Ошибка!",loginmsg,"Повтор","Выйти");
gPlayerLogTries[playerid] += 1;
if(gPlayerLogTries[playerid] == 4)
{
BanEx(playerid,"Неверный ввод пароля 3 раза!");
}
