switch(dialogid)
{
case 0: // диалог регистрации
{
new str[171 + MAX_PLAYER_NAME];
if(response
== 0 || !(3 <= strlen(inputtext
) <= 20)) // Если длина пароля меньше 3 либо больше 20, либо игрок нажал на вторую кнопку {
format(str
, sizeof(str
), MsgBox
[0], PlayerInfo
[playerid
][pName
]); // Превратим "%s" в полученный никнейм игрока
ShowPlayerDialog(playerid
, 0, DIALOG_STYLE_INPUT, "Добро пожаловать на сервер", str
, "Далее", ""); }
strmid(PlayerInfo
[playerid
][pPassword
], inputtext
, 0, 21, 21); // Запишем введённый текст с диалога в массив с паролем игрока
str
= "Accounts/", strcat(str
, PlayerInfo
[playerid
][pName
]), strcat(str
, ".ini"); // Accounts/ Accounts/Никнейм Accounts/Никнейм.ini
new File: file
= fopen(str
, io_write); // Откроем файл аккаунта игрока в режиме записи
if(file) // Если файл открылся
{
str
= "Password=", strcat(str
, inputtext
); // Password=Введённый текст в диалог
// Запишем получившуются строку "str" в файл
// Закроем файл
}
str
= "Добро пожаловать, ", strcat(str
, PlayerInfo
[playerid
][pName
]), strcat(str
, ", вы успешно зарегистрировались"); PlayerInfo[playerid][pLogged] = 1; // Дать понять, что игрок вошёл в аккаунт
}
case 1: // диалог авторизации
{
new str[159+MAX_PLAYER_NAME+1];
str
= "Accounts/", strcat(str
, PlayerInfo
[playerid
][pName
]), strcat(str
, ".ini"); // Accounts/ Accounts/Никнейм Accounts/Никнейм.ini
if(response == 0 || inputtext[0] == '\0') // Если игрок нажал на вторую кнопку, либо не ввёл ничего в диалог
{
format(str
, sizeof(str
), MsgBox
[1], PlayerInfo
[playerid
][pName
]); // Превратим "%s" в полученный никнейм игрока ShowPlayerDialog(playerid
, 1, DIALOG_STYLE_INPUT, "С возвращением на сервер", str
, "Далее", ""); return true;
}
new File: file
= fopen(str
, io_read); // Открываем файл в режиме чтения if(file != File:0) // Если файл открылся
{
fread(file
, str
); // Прочитаем первую строку из файла GetDataAfterChar(str); // Записали данные после символа "=", в параметрах его нет, так как по умолчанию, в параметрах функции стоит этот символ
if(strcmp(str
, inputtext
, false)) {
format(str
, sizeof(str
), MsgBox
[1], PlayerInfo
[playerid
][pName
]); // Превратим "%s" в полученный никнейм игрока ShowPlayerDialog(playerid
, 1, DIALOG_STYLE_INPUT, "Вы ввели неверный пароль", str
, "Далее", ""); }
else
{
strmid(PlayerInfo
[playerid
][pPassword
], str
, 0, 21, 21); // Запишем сконвертированную строку в массив с паролем игрока while(fread(file
, str
)) // Пробежимся по строкам из файла {
// Важное примечание! Распологайте строки в файле так, чтобы потом они считывались по порядку, если у вас сначала сохраняется уровень админки, а потом деньги, то сохраняйте так, как показано ниже
if(!strcmp(str
, "AdminLevel=", true, 11)) PlayerInfo
[playerid
][pAdmin
] = strval(str
[11]); // уровень админки }
str
= "С возвращением, ", strcat(str
, PlayerInfo
[playerid
][pName
]), strcat(str
, ", вы успешно вошли в аккаунт."); // С возвращением, С возвращением, Никнейм С возвращением, Никнейм, вы успешно вошли в аккаунт.
PlayerInfo[playerid][pLogged] = 1; // Дать понять, что игрок вошёл в аккаунт
}
}
}
}