PDA

Просмотр полной версии : [Вопрос] Неверно присваивается значение переменной



#ball
27.08.2015, 23:57
Такая проблема.При подключение к серверу,переменной присваивается ник игрока:

GetPlayerName(playerid, acInfo[playerid][acName],MAX_PLAYER_NAME);

Далее происходит регистрация аккаунта.
Проблема в том,что в acInfo[playerid][acName] записывается часть ника,а дальше хэш пароля.


SHA256_PassHash(inputtext, salt, acInfo[playerid][acPassword], MAX_PASSWORD_LEN);

Как они вообще пересекаются?!

Ник в бд:

Luke_B73ADB44DF4B777F1643

Пароль в бд:

73ADB44DF4B777F16437D876A23CED55FB593282D25D5D9F0D409795B9F572

В коде больше не где не происходит какое-нибудь присвоение acInfo[playerid][acName]

- - - Добавлено - - -

Провел тест,глупый,но зато работает


new str[25];
format(str,25,"%s",acInfo[playerid][acName]);
SendClientMessage(playerid, -1, str);//Нормально выводит ник
SHA256_PassHash(inputtext, salt, acInfo[playerid][acPassword], MAX_PASSWORD_LEN);
format(str,25,"%s",acInfo[playerid][acName]);
SendClientMessage(playerid, -1, str);//Выводится часть ника + часть хэша пароля. КАК?!

$continue$
27.08.2015, 23:58
Регу в студию

#ball
27.08.2015, 23:59
Я нашел в чем причина,прошу вас объяснить мне с какого перепуга SHA256_PassHash лезет в переменные другие

$continue$
28.08.2015, 00:10
Ну не хочешь показывать регистрацию, могу только предположить:


new str[25];
format(str, sizeof(str),"%s",acInfo[playerid][acName]);
SendClientMessage(playerid, -1, str);//Нормально выводит ник
SHA256_PassHash(inputtext, salt, acInfo[playerid][acPassword], MAX_PASSWORD_LEN);
str[0] = EOS; // EOS == "\0"
format(str, sizeof(str), "%s",acInfo[playerid][acName]);
SendClientMessage(playerid, -1, str);//Выводится часть ника + часть хэша пароля. КАК?!

Хотя - это может и для тестов, но зачем юзать форматирование строки?
Как то так - пишу от спешки (Надо отойти от компьютера)


new str[25];
strins(str, acInfo[playerid][acName], 0);
SendClientMessage(playerid, -1, str);//Нормально выводит ник
SHA256_PassHash(inputtext, salt, acInfo[playerid][acPassword], MAX_PASSWORD_LEN);
SendClientMessage(playerid, -1, str);//Выводится часть ника + часть хэша пароля. КАК?!

Daniel_Cortez
28.08.2015, 00:15
Я нашел в чем причина,прошу вас объяснить мне с какого перепуга SHA256_PassHash лезет в переменные другие
Думаете, тут кто-то знает, как вы объявили массив acInfo (а самое главное, используемый в нём enum)?