new pass[MAX_STRING];
fread(accoun, pass);
strmid(PlayerInfo[playerid][Password], pass, 9, strlen(pass), 256);
if((strcmp(PlayerInfo[playerid][Password], inputtext, false, strlen(pass))) == 1){ //Проверка на правильность пароля
new pass[128];
fread(accoun, pass);
strmid( PlayerInfo[playerid][Password], pass, 0, strlen(pass), 127);
if(!strcmp(PlayerInfo[playerid][Password], inputtext))
{
//you input true password, bla bla bla...
}
!strcmp
pass, 0
new var = 1;
if(var) print("var is 1");
var = 0;
if(!var) print("var is 0");
new something = strcmp("one", "one", true);
printf("strcmp result is %d", something);
new string[MAX_STRING];
if(dialogid == player_RegLog_DialogID){
format(string, sizeof(string), "/accounts/%s.cer",GetPlayerNameZ(playerid));
if(response){
if(PlayerInfo[playerid][pIsLogin] == true) return SendClientMessage(playerid, COLOR_GREY, " Вы уже вошли!");
if(strlen(inputtext) == 0){
SendClientMessage(playerid,COLOR_RED,"Вы не ввели пароль");
return ShowPlayerDialog(playerid,player_RegLog_DialogID,DIALOG_STYLE_INPUT,"{B7FF00}Аккаунт","Бла-бла-бла... введите пароль и выберите действие:","Вход","Регистрация");}
if(!fexist(string)){
SendClientMessage(playerid,COLOR_RED,"Ваш ник не зарегистрирован!");
return ShowPlayerDialog(playerid,player_RegLog_DialogID,DIALOG_STYLE_INPUT,"{B7FF00}Аккаунт","Бла-бла-бла... введите пароль и выберите действие:","Вход","Регистрация");}
new File:accountf;
accountf = fopen(string,io_read);
new valtmp[128];
fread(accountf, valtmp);
strmid(PlayerInfo[playerid][pPass], valtmp, 5, strlen(valtmp), 127);
if((strcmp(PlayerInfo[playerid][pPass], inputtext, false, strlen(valtmp))) == 1){
new data[MAX_STRING],key[MAX_STRING];
while(fread(accountf,data,sizeof(data))){
key = ini_GetKey(data);
if(!strcmp(key, "Cash")) PlayerInfo[playerid][pCash] = strval(ini_GetValue(data));
if(!strcmp(key, "Kills")) PlayerInfo[playerid][pKills] = strval(ini_GetValue(data));
if(!strcmp(key, "Deaths")) PlayerInfo[playerid][pDeaths] = strval(ini_GetValue(data));
SetPlayerMoneyZ(playerid,PlayerInfo[playerid][pCash]);
SetPlayerScore(playerid, PlayerInfo[playerid][pKills]);}
PlayerInfo[playerid][pIsLogin] = true;
fclose(accountf);
SendClientMessage(playerid,NGREEN,"Вы успешно вошли! ");
}else{
SendClientMessage(playerid,COLOR_RED,"Неверный пароль!");
ShowPlayerDialog(playerid,player_RegLog_DialogID,DIALOG_STYLE_INPUT,"{B7FF00}Аккаунт","Бла-бла-бла... введите пароль и выберите действие:","Вход","Регистрация");
fclose(accountf);}
return 1;
}else{
//Регистрация...
strmid(PlayerInfo[playerid][pPass], valtmp, 5, strlen(valtmp), 127); Почему тут идет запись в массив с 5 символа?? Должно быть с 0. |
if(strlen(inputtext) == 0) бред, он всегда будет > 1. Почему - долго объяснять. Лучше использовать if(strval(inputtext) <= 0) { }. |
if((strcmp(PlayerInfo[playerid][pPass], inputtext, false, strlen(valtmp))) == 1) - про это я уже писал, либо ставь == 0, либо в начале ! и без всяких ==. |
new string[256];
format(string, 256, "%s", dini_Get("myaccount.cer", "Pass") )
// получаем строку со значением 12345