Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 1 из 1
  1. #1
    Аватар для Disinterpreter
    Проверенный

    Статус
    Оффлайн
    Регистрация
    02.01.2014
    Сообщений
    88
    Репутация:
    91 ±

    Простая авторизация для простого сервера

    Итак, у нас стоит задача, сделать в МТА простую авторизацию, для игроков, чтобы при релоге их данные не пропадали.

    Мы, конечно же, можем пойти по пути SA-MP и заюзать всякие ини-ридеры, xml и прочие вещи для изврата. А можем и просто взглянуть под другим углом.

    А этот другой угол заключается вот в чем - в мта уже встроена система авторизации игрока. Для управления администраторскими полномочиями и для доступа к веб-морде. Поэтому мы и воспользуемся ей. Сам инструмент авторизации использует непосредственно SQLite базы данных, которые называются internal.db и registry.db в папке с сервером.

    Открыв документацию мы увидим следующие функции:
    • addAccount
    • copyAccountData
    • getAccountData
    • getAccountName
    • getAccountPlayer
    • getAccountsBySerial
    • getAccountSerial
    • getAccounts
    • getAccount
    • getAllAccountData
    • getPlayerAccount
    • isGuestAccount
    • logIn
    • logOut
    • removeAccount
    • setAccountData
    • setAccountPassword


    Собственно, почему же я выделил только 2 функции? А ответ прост. В МТА на уровне ресурса admin уже имеется встроенная команда /register а команда /login встроена в самой игре. Поэтому нет смысла переписывать эти вещи. Хотя конечно, если мы хотим GUI нам придется воспользоваться большинством остальных функций. Посмотреть это можно в моем коде или более красивом, объектном варианте.

    Так вот, что же выполняют те самые 2 функции? А их работа очень проста. Функция setAccountData кладет данные в данные с пользователем по ключу указанному в аргументах, а функция getAccountData всего лишь их считывает. Таким образом используя эвенты onPlayerJoin, onPlayerQuit или onPlayerLogin, onPlayerLogout мы можем сохранять или загружать пользовательские данные.

    P.S Я рассказал только о довольно тривиальных вещах, писать примеры кода в этой теме я не вижу смысла ибо это урок, а не готовое решение. Если вы собираетесь делать проект, который будет достаточно крупный, советую использовать MySQL функции.
    Последний раз редактировалось Disinterpreter; 15.10.2015 в 18:09.

  2. 7 пользователя(ей) сказали cпасибо:
    $continue$ (15.10.2015) Daniel_Cortez (15.10.2015) Jeff_Monson (16.10.2015) L0ndl3m (15.10.2015) SDraw (15.10.2015) Spectrum (17.10.2015) [ForD] (17.10.2015)
 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •