OriginalShaman Posted April 9, 2015 Share Posted April 9, 2015 Регистрация на сервере 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; } Link to comment Share on other sites More sharing options...
Recommended Posts