7_Nike_7
Новичок
Почему у меня не сохраняет регистрация вот , Кто поможет тому + дам
PHP:
//=[Инклуды]====================================================================
#include <a_samp> // Главный инклуд
#include <mxini> // Для админки
//=[Невы]=======================================================================
enum pInfo { // Админка
pMoney,
pAdmin,
pScore,
};
new PlayerInfo[MAX_PLAYERS][pInfo]; // Админка
forward SaveAccounts(); // Сохранение данных
//==============================================================================
public OnPlayerConnect(playerid)
{
new PlayerNick[500]; // Для админки
GetPlayerName(playerid,PlayerNick,sizeof(PlayerNick)); // Узнаем ник игрока
new users[128];
format(users,sizeof(users),"user/%s.ini",PlayerNick); // Создаем аккаунт
if(!fexist(users))
{
ShowPlayerDialog(playerid,7000,DIALOG_STYLE_INPUT, "{ffff00}[RP]Gameland {ffffff}- Регистрация", "______________________________________________________________ \n \n {ffffff}Добро пожаловать на сервер {00ff00}..::{ff9900}[[RP]{cc0000}Gameland{00ff00}::..{ffffff}RUS(0.3d).\n Регестрация нового персонажа.\n \n Введите пороль: \n ______________________________________________________________", "Готова", ""); // Регистрация
}
else
{
ShowPlayerDialog(playerid,7002,DIALOG_STYLE_INPUT, "{ffff00}[RP]Gameland {ffffff}- Авторизация", "______________________________________________________________\n \n {ffffff}Добро пожаловать на сервер {00ff00}..::{ff9900}[[RP]{cc0000}Gameland{00ff00}::..{ffffff}RUS(0.3d).\n Этот аккаут зарегестрирован.\n \n Введите пороль: \n ______________________________________________________________", "Войти", ""); // Авторизация
}
PlayerInfo[playerid][pAdmin] = 0; // При заходе 0 лвл админки
PlayerInfo[playerid][pScore] = 0; // При заходе очков 0
return 1;
}
//==============================================================================
public OnPlayerDisconnect(playerid,reason)
{
SaveAccount(playerid); // Сохранение аккаунтов
return 1;
}
//==============================================================================
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) // Менюха
{
if(dialogid == 7000) // Регистрация
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid,7000,DIALOG_STYLE_INPUT, "{ffff00}[RP]Gameland {ffffff}- Регистрация", "______________________________________________________________ \n \n {ffffff}Добро пожаловать на сервер {00ff00}..::{ff9900}[[RP]{cc0000}Gameland{00ff00}::..{ffffff}RUS(0.3d).\n Регестрация нового персонажа.\n \n Введите пороль: \n ______________________________________________________________", "Готова", ""); // Регистрация
if(response)
{
new PlayerNick2[MAX_PLAYER_NAME];
GetPlayerName(playerid,PlayerNick2,sizeof(PlayerNick2)); // Узнаем ник
new account[128];
format(account,sizeof(account),"user/%s.ini",PlayerNick2); // Ищем аккаунт
if(fexist(account)) return ShowPlayerDialog(playerid,7002,DIALOG_STYLE_INPUT, "{ffff00}[RP]Gameland {ffffff}- Авторизация", "______________________________________________________________\n \n {ffffff}Добро пожаловать на сервер {00ff00}..::{ff9900}[[RP]{cc0000}Gameland{00ff00}::..{ffffff}RUS(0.3d).\n Этот аккаут зарегестрирован.\n \n Введите пороль: \n ______________________________________________________________", "Войти", ""); // Авторизация
new iniFile = ini_createFile(account); // Создаем аккаунт
if(iniFile < 0) ini_openFile (account); // Если файл пустой, то...
{
ini_setString(iniFile,"Password",inputtext); // Запишем пароль для игрока
ini_setInteger(iniFile, "Money", 5000); // Запишем кол-во денег для игрока
ini_setInteger(iniFile,"Admin",0); // Запишем админку для игрока
ini_setInteger(iniFile,"COP",0); // Запишем копа для игрока
ini_setInteger(iniFile, "Score", 0); // Запишем очки для игрока
ini_closeFile(iniFile); // Закроем файл
SetPVarInt(playerid, "Logged", 0); // Создаем переменную авторизации
new p[MAX_PLAYER_NAME];
GetPlayerName(playerid,p,23);
SendClientMessage(playerid, 0x21DD00FF, "{00ffff}Вы зарегестрировались можите войти.");
ShowPlayerDialog(playerid,7002,DIALOG_STYLE_INPUT, "{ffff00}[RP]Gameland {ffffff}- Авторизация", "______________________________________________________________\n \n {ffffff}Добро пожаловать на сервер {00ff00}..::{ff9900}[[RP]{cc0000}Gameland{00ff00}::..{ffffff}RUS(0.3d).\n Этот аккаут зарегестрирован.\n \n Введите пороль: \n ______________________________________________________________", "Войти", ""); // Авторизация
}
}
else // Проверка на вторую кнопку, но ее то мы не указали. Но если нажать Esc, то мы не регаемся. Так что мы ставим проверку на нажатие Esc'ейпа
{
ShowPlayerDialog(playerid,7000,DIALOG_STYLE_INPUT, "{ffff00}[RP]Gameland {ffffff}- Регистрация", "______________________________________________________________ \n \n {ffffff}Добро пожаловать на сервер {00ff00}..::{ff9900}[[RP]{cc0000}Gameland{00ff00}::..{ffffff}RUS(0.3d).\n Регестрация нового персонажа.\n \n Введите пороль: \n ______________________________________________________________", "Готова", ""); // Регистрация
}
}
//------------------------------------------------------------------------------
if(dialogid == 7002) // Авторизация
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid,7002,DIALOG_STYLE_INPUT, "{ffff00}[RP]Gameland {ffffff}- Авторизация", "______________________________________________________________\n \n {ffffff}Добро пожаловать на сервер {00ff00}..::{ff9900}[[RP]{cc0000}Gameland{00ff00}::..{ffffff}RUS(0.3d).\n Этот аккаут зарегестрирован.\n \n Введите пороль: \n ______________________________________________________________", "Войти", ""); // Авторизация
if(response) // Проверка на кнопку "ОК" и Enter
{
new PlayerNick4[MAX_PLAYER_NAME], password[64];
GetPlayerName(playerid,PlayerNick4,sizeof(PlayerNick4));
new account[128];
format(account,sizeof(account),"user/%s.ini",PlayerNick4); // Загружаем данные
if(IsPlayerNPC(playerid))return 1;
new iniFile = ini_openFile(account);
ini_getString(iniFile, "Password",password); // Узнаём пароль аккаунта.
if(!strcmp(inputtext, password, true))
{
ini_getInteger(iniFile, "Money", PlayerInfo[playerid][pMoney]); // Запишем кол-во денег игроку
ini_getInteger(iniFile,"Admin",PlayerInfo[playerid][pAdmin]); // Запишем админку игроку
ini_getInteger(iniFile,"Score",PlayerInfo[playerid][pScore]); // Запишем очки игроку
SetPlayerScore(playerid, PlayerInfo[playerid][pScore]); // Количество очков у игрока
GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]); // Количество денег у игрока
SendClientMessage(playerid, 0x21DD00FF, "{ffff00}Желаем вам хорошо провести время на нашем сервере {00ff00}..::[RP]Gameland::.. .");
ini_closeFile(iniFile);
return 1;
}
else
{
SendClientMessage(playerid, 0xF60000AA, "Вы ввели неверный пароль. Попробуй ещё раз.");
ShowPlayerDialog(playerid,7002,DIALOG_STYLE_INPUT, "{ffff00}[RP]Gameland {ffffff}- Авторизация", "______________________________________________________________\n \n {ffffff}Добро пожаловать на сервер {00ff00}..::{ff9900}[[RP]{cc0000}Gameland{00ff00}::..{ffffff}RUS(0.3d).\n Этот аккаут зарегестрирован.\n \n Введите пороль: \n ______________________________________________________________", "Войти", ""); // Авторизация
return 1;
}
}
else //Если нажать Esc, то...
{
ShowPlayerDialog(playerid,7002,DIALOG_STYLE_INPUT, "{ffff00}[RP]Gameland {ffffff}- Авторизация", "______________________________________________________________\n \n {ffffff}Добро пожаловать на сервер {00ff00}..::{ff9900}[[RP]{cc0000}Gameland{00ff00}::..{ffffff}RUS(0.3d).\n Этот аккаут зарегестрирован.\n \n Введите пороль: \n ______________________________________________________________", "Войти", ""); // Авторизация
}
}
return 0;
}
//==============================================================================
public SaveAccounts() // Сохраняет данные
{
for(new f; f < GetMaxPlayers(); f++)
{
if(!IsPlayerConnected(f))continue;
SaveAccount(f);
}
}
//==============================================================================
stock SaveAccount(playerid) // Сохраняет данные
{
new PlayerNick6[MAX_PLAYER_NAME], account[128];
GetPlayerName(playerid,PlayerNick6,sizeof(PlayerNick6));
format(account,sizeof(account), "user/%s.ini", PlayerNick6);
new iniFile = ini_openFile(account);
ini_setInteger(iniFile, "Money", GetPlayerMoney(playerid));
ini_setInteger(iniFile,"Admin",PlayerInfo[playerid][pAdmin]);
ini_setInteger(iniFile, "Score", GetPlayerScore(playerid));
ini_closeFile(iniFile);
return 1;
}
//==============================================================================
