Лучший вариант для регистрации на инклуде Power INI от SwipoStyleЗдесь регистрация сохраняет Админ уровень, Деньги и Убийства
Важно: Необходимо создать папку users в папке scriptfiles
Скрытый текст [Показать]
/* Готовая регистрация для модов с 0 Создатель SwipoStyle (skype: swipos) Update 1.1 (22.01.2012) Новое в 1.1: * Проверка игрока на то что он авторизован * Добавлен выбор пола * Исправлена ошибка с созданием аккаунта ------------------------------------------------------------------------------*/ #include <a_samp> #include <power_ini> //------------------------------------------------------------------------------ #define COLOR_RED 0xFF0000FF // красный //------------------------------------------------------------------------------ // Ячейки для хранения информации из аккаунта enum pInfo { pAdmin, pScore, pMoney, pSex }; //------------------------------------------------------------------------------ new PlayerInfo[MAX_PLAYERS][pInfo]; // Для проверки все ячеек информации new pLogin[MAX_PLAYERS]; // Для проверки авторизации //------------------------------------------------------------------------------ main() { print("\n-------------------------------"); print("Регистрация Power INI загружена"); print("-------------------------------\n"); } //------------------------------------------------------------------------------ public OnGameModeInit() { SetGameModeText("Power INI"); AddPlayerClass(0, 0.0,0.0,0.0,0.0, 0,0,0,0,0,0); return 1; } //------------------------------------------------------------------------------ public OnPlayerRequestClass(playerid, classid) { // Если он авторизован то разрешаем выбирать скин if(pLogin[playerid] == 1) { SetPlayerInterior(playerid,11); SetPlayerPos(playerid,508.7362,-87.4335,998.9609); SetPlayerFacingAngle(playerid,0.0); SetPlayerCameraPos(playerid,508.7362,-83.4335,998.9609); SetPlayerCameraLookAt(playerid,508.7362,-87.4335,998.9609); } return 1; } //------------------------------------------------------------------------------ public OnPlayerConnect(playerid) { pLogin[playerid] = 0; // Не авторизован // Регистрация/Авторизация new name[MAX_PLAYER_NAME], account[128]; GetPlayerName(playerid, name, sizeof(name)); format(account, sizeof(account),"users/%s.ini", name); { if(!fexist(account)) // Если нету аккаунта, то регистрация { ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "Регистрация","Вы не зарегистрированы на нашем\nсервере, пожалуйста введите\nпароль для регистрации","Рега","Выход"); } else // Если есть аккаунт, то авторизация { ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, "Авторизация","Вы зарегистрированы на нашем\nсервере, пожалуйста введите\nпароль для входа в игру","Вход","Выход"); } } return 1; } //------------------------------------------------------------------------------ public OnPlayerDisconnect(playerid, reason) { // Сохраняем его если он авторизован if(pLogin[playerid] == 1) { new name[MAX_PLAYER_NAME], account[128]; GetPlayerName(playerid, name, sizeof(name)); format(account, sizeof(account), "users/%s.ini", name); new iniFile = ini_open(account); ini_set_int(iniFile, "Информация", "Админ", PlayerInfo[playerid][pAdmin]); ini_set_int(iniFile, "Информация", "Очки", GetPlayerScore(playerid)); ini_set_int(iniFile, "Информация", "Деньги", GetPlayerMoney(playerid)); ini_set_int(iniFile, "Информация", "Пол", PlayerInfo[playerid][pSex]); ini_close(iniFile); } return 1; } //------------------------------------------------------------------------------ public OnPlayerSpawn(playerid) { // Если авторизован то спавним if(pLogin[playerid] == 1) { SetPlayerInterior(playerid, 0); // Ваша функция } return 1; } //------------------------------------------------------------------------------ public OnPlayerText(playerid, text[]) { // Если авторизован то пишет в чат if(pLogin[playerid] == 1) { // Текст SendClientMessageToAll(GetPlayerColor(playerid), text); return 0; } else // Если нет { SendClientMessage(playerid, COLOR_RED, "Авторизуйтесь для того чтобы общаться"); } return 1; } //------------------------------------------------------------------------------ public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if(dialogid == 1) // Регистрация { if(response) { if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_PASSWORD, "Регистрация","Вы не зарегистрированы на нашем\nсервере, пожалуйста введите\nпароль для регистрации","Рега","Выход"); new name[MAX_PLAYER_NAME], account[128]; GetPlayerName(playerid, name, sizeof(name)); format(account, sizeof(account), "users/%s.ini", name); new iniFile = ini_open(account); ini_set(iniFile, "Настройки", "Пароль", inputtext); ini_set_int(iniFile, "Информация", "Админ", 0); ini_set_int(iniFile, "Информация", "Очки", 0); ini_set_int(iniFile, "Информация", "Деньги", 5000); ini_set_int(iniFile, "Информация", "Пол", 0); ini_close(iniFile); ShowPlayerDialog(playerid, 3, DIALOG_STYLE_MSGBOX, "Выбор пола","Выберите ваш пол","Мужской","Женский"); } else { Kick(playerid); } } if(dialogid == 3) // Выбор пола { new name[MAX_PLAYER_NAME], account[128]; GetPlayerName(playerid, name, sizeof(name)); format(account, sizeof(account), "users/%s.ini", name); new iniFile = ini_open(account); if(response) { ini_set_int(iniFile, "Информация", "Пол", 1); // Мужской } else { ini_set_int(iniFile, "Информация", "Пол", 2); // Женский } ini_close(iniFile); ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, "Авторизация","Вы зарегистрированы на нашем\nсервере, пожалуйста введите\nпароль для входа в игру","Вход","Выход"); } if(dialogid == 2) // Авторизация { if(response) { if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, "Авторизация","Вы зарегистрированы на нашем\nсервере, пожалуйста введите\nпароль для входа в игру","Вход","Выход"); new name[MAX_PLAYER_NAME], account[128], pass[64]; GetPlayerName(playerid, name, sizeof(name)); format(account, sizeof(account), "users/%s.ini", name); new iniFile = ini_open(account); ini_get(iniFile, "Настройки", "Пароль", pass); if(!strcmp(inputtext, pass, true)) { ini_get_int(iniFile, "Информация", "Админ", PlayerInfo[playerid][pAdmin]); ini_get_int(iniFile, "Информация", "Очки", PlayerInfo[playerid][pScore]); ini_get_int(iniFile, "Информация", "Деньги", PlayerInfo[playerid][pMoney]); ini_get_int(iniFile, "Информация", "Пол", PlayerInfo[playerid][pSex]); ini_close(iniFile); pLogin[playerid] = 1; SetPlayerScore(playerid, PlayerInfo[playerid][pScore]); ResetPlayerMoney(playerid); GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]); OnPlayerRequestClass(playerid, 0); } else { pLogin[playerid] = 0; SendClientMessage(playerid, COLOR_RED, "Вы ввели неверный пароль, повторите попытку!"); ShowPlayerDialog(playerid, 2, DIALOG_STYLE_PASSWORD, "Авторизация","Вы зарегистрированы на нашем\nсервере, пожалуйста введите\nпароль для входа в игру","Вход","Выход"); } } else { Kick(playerid); } } //-------------------------------------------------------------------------- return 1; }

Смотреть инклуд
Автор: Я (SwipoStyle)
[attachment=137:reg.pwn]