Онлайн всего: 1 Гостей: 1 Пользователей: 0 |
|
09.02.2013, 20:10 | |
Отключаем возможность писать в чат неавторизованному. { if(playerVariable[playerid][aLogged] == false) return 0; return 1; } Наш OnPlayerConnect. public OnPlayerConnect(playerid) { RemovePlayerVariables(playerid); //------------------------------------------------------------------------------ GetPlayerName(playerid, playerVariable[playerid][aName], MAX_PLAYER_NAME); //------------------------------------------------------------------------------ if(GetAccountID(playerid)) { // Аккаунт зарегистрирован new dialog[128+MAX_PLAYER_NAME]; format(dialog, sizeof(dialog), "Добро пожаловать на Сервер!\n\ Этот аккаунт зарегистрирован.\n\n\ Логин: %s\n\ Введите пароль:", playerVariable[playerid][aName]); ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Авторизация.", dialog, "Войти", "Отмена"); } else { // Аккаунт не зарегистрирован (return 0, в функции GetAccountID, т.е. не нашло записи с аккаунтом). new dialog[344+MAX_PLAYER_NAME]; format(dialog, sizeof(dialog), "Добро пожаловать на Сервер!\n\ Этот аккаунт не зарегистрирован.\n\n\ Логин: %s\n\ Введите пароль и нажмите \"Далее\".\n\n\ Примечания:\n\ - Пароль чувствительный к регистру.\n\ - Длина пароля от 6 до 32 символов.\n\ - В пароле можно использовать символы на кириллице и латинице.\n", playerVariable[playerid][aName]); ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Регистрация.", dialog, "Далее", "Отмена"); } return 1; } Наш OnPlayerDisconnect. public OnPlayerDisconnect(playerid, reason) { if(playerVariable[playerid][aLogged] == true) SaveAccount(playerid); return 1; } Готово, у нас есть система регистрации. Вот так выглядит таблица с аккаунтами: Основу дал, объяснил. Дальше дорабатывайте сами под свой лад. Защиту от съезда полей (из-за sscanf) сами делайте, опять же, тут разжевал основу.Автор урока: Snoowker (на SRC — Satellite). | |
Добавил: AXE | | |
Просмотров: 4179 | Рейтинг: 5.0/1 |