Регистрация на сервере SAMP с помощью mxINI - GTA: SAMP - Моддинг Игр и Серверов Перейти к содержанию

Регистрация на сервере SAMP с помощью mxINI


OriginalShaman

Рекомендуемые сообщения

Регистрация на сервере SAMP с помощью mxINI

 

 

 

Начнём с ознакомления с функциями.

ini_createFile("Путь/к/файлу.ini"); // Данная функция создаёт файл.
ini_openFile("Путь/к/файлу.ini"); // Эта функция открывает существующий файл.
ini_closeFile(ИД_открытого_файла); // Эта функция закрывает уже открытый файл.  

Запись данных в файл.

ini_setString(ИД_открытого_файла, "имя ключа", "текст"); // Эта функция записывает текст в ключ.
ini_setInteger(ИД_открытого_файла, "имя ключа", 123456 ); // Эта функция записывает целое число в ключ.
ini_setFloat(ИД_открытого_файла, "имя ключа", 3.1416 ); // Эта функция записывает десятичное число в ключ.  

Чтение ключей из файла.

ini_getString(ИД_открытого_файла, "имя ключа", Нужная_вам_переменная); // Эта функция записывает текст в переменную из файла.
ini_getInteger(ИД_открытого_файла, "имя ключа", Нужная_вам_переменная); // Эта функция записывает целое число в переменную из файла.
ini_getFloat(ИД_открытого_файла, "имя ключа", Нужная_вам_переменная); // Эта функция записывает десятичное число в переменную из файла.

Остальные функции.

ini_removeKey(ИД_открытого_файла, "имя ключа"); // Эта функция удаляет ключ из файла
ini_getErrorInfo(Код_ошибки); // Эта функция возвращает ошибку, не как число, а как текст.  

Создание регистрации.

enum pInfo {
    pMoney, // Сохраняет кол-во денег.
    Float:pHeal, // Сохраняет кол-во жизней.
};
new Player[MAX_PLAYERS][pInfo];

Создаём переменные для игрока.

stock CreateAccount(playerid, pass[])
{
    new pName[MAX_PLAYER_NAME], string[64];
    GetPlayerName(playerid, pName, MAX_PLAYER_NAME); // Узнаём имя игрока
    format(string, 64, "%s.ini", pName); // Добавляем тип файла (.ini).
    
    new iniFile = ini_createFile(string); // Создаём файл.
    if(iniFile < 0) ini_openFile(string); // Если файл выдал ошибку, то мы его откроем заного.
    ini_setString(iniFile, "Password", pass); // Запишем пароль в файл.
    ini_setInteger(iniFile, "Money", 0); // Запишем кол-во денег в файл.
    ini_setFloat(iniFile, "Heal", 100.0); // Запишем кол-во жизней в файл.
    ini_closeFile(iniFile); // Закрываем файл.
    LoadAccount(playerid, pass);
    return 1;
}  

Создание регистрации/авторизации/сохранения аккаунта.

Создание аккаунта.

stock CreateAccount(playerid, pass[])
{
    new pName[MAX_PLAYER_NAME], string[64];
    GetPlayerName(playerid, pName, MAX_PLAYER_NAME); // Узнаём имя игрока
    format(string, 64, "%s.ini", pName); // Добавляем тип файла (.ini).
    
    new iniFile = ini_createFile(string); // Создаём файл.
    if(iniFile < 0) ini_openFile(string); // Если файл выдал ошибку, то мы его откроем заного.
    ini_setString(iniFile, "Password", pass); // Запишем пароль в файл.
    ini_setInteger(iniFile, "Money", 0); // Запишем кол-во денег в файл.
    ini_setFloat(iniFile, "Heal", 100.0); // Запишем кол-во жизней в файл.
    ini_closeFile(iniFile); // Закрываем файл.
    LoadAccount(playerid, pass);
    return 1;
}  

Авторизация аккаунта.

stock LoadAccount(playerid, pass[])
{
    new pName[MAX_PLAYER_NAME], string[64], password2[64];
    GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
    format(string, 64, "%s.ini", pName); // Задаём путь к файлу

    new iniFile = ini_openFile(string); // Открываем файл.
    ini_getString(iniFile, "Password", password2); // Узнаём пароль аккаунта.
    if(!strcmp(pass, password2, true)) 
    {
        // если пароль верный то:
        ini_getInteger(iniFile, "Money", Player[playerid][pMoney]); // Запишем кол-во денег в переменную.
        ini_getFloat(iniFile, "Heal", Player[playerid][pHeal]); // Запишем кол-во жизней в переменную.
        SetPlayerHealth(playerid, Player[playerid][pHeal]);
        GivePlayerMoney(playerid, Player[playerid][pMoney]);
        return 1;
    }
    else
    {
        // если пароль неверный то:
        SendClientMessage(playerid, 0xffffffFF, " * Невенрный пароль!");
        return 0;
    }
    ini_closeFile(iniFile); // Закрываем файл.
}  

Сохранение аккаунта.

stock SaveAccount(playerid)
{
    new pName[MAX_PLAYER_NAME], string[64];
    GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
    format(string, 64, "%s.ini", pName); // Задаём путь к файлу
    GetPlayerHealth(playerid, Player[playerid][pHeal]);
    new iniFile = ini_openFile(string); // Открываем файл.
    ini_setInteger(iniFile, "Money", Player[playerid][pMoney]); // Запишем кол-во денег в файл.
    ini_setFloat(iniFile, "Heal", Player[playerid][pHeal]); // Запишем кол-во жизней в файл.
    ini_closeFile(iniFile); // Закрываем файл.
    return 1;
}  
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...