Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 11
  1. #1
    Аватар для Simlish
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.04.2015
    Сообщений
    8
    Репутация:
    0 ±

    админ-авторизацтя

    Чет я не совсем догнал как сделать команду(on DC_CMD) /alogin. В идеале, я планировал сделать типа /alogin[пароль]. Я использую отдельно таблицу с аккаунтами администраторов (`admins`).
    Hello World

  2. #2
    Аватар для DmX
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.04.2013
    Адрес
    Краснодар
    Сообщений
    292
    Репутация:
    23 ±
    1) Создаешь переменную с паролем, можно глобальную можно в аккаунт.
    2) Сделаем на примере глобальной:

    PHP код:
    new password 123123;//Наш пароль
    new aLogin[MAX_PLAYERS];//Авторизован или нет 
    3) После того как добавили эти две переменные, заходим в паблик OnPlayerConnect и добавляем:

    PHP код:
    aLogin[playerid] = 0// Обнуляем 
    4) Далее создаем саму команду.

    PHP код:
    CMD:alogin(playeridparams[])
    {
        if(
    PlayerInfo[playerid][pAdmin] == 0) return true;//Если не администратор, то команда не будет работать
        
    if(aLogin[playerid] == 1) return SendClientMessage(playerid,-1,"Вы уже авторизованы как администратор");
        if(
    sscanf(params"i"params[0])) return SendClientMessage(playerid,-1,"/alogin [пароль]");
        if(
    params[0] == password)
        {
            
    aLogin[playerid] = 1;
            
    SendClientMessage(playerid,-1,"Вы авторизовались как администратор");
        }
        return 
    true;

    5) Во все администраторские команды добавляем проверку:

    PHP код:
    if(aLogin[playerid] != 1) return SendClientMessage(playerid,-1,"Вы не авторизованы как администратор"); 

  3. #3
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Цитата Сообщение от DmX Посмотреть сообщение
    1) Создаешь переменную с паролем, можно глобальную можно в аккаунт.
    2) Сделаем на примере глобальной:

    PHP код:
    new password 123123;//Наш пароль
    new aLogin[MAX_PLAYERS];//Авторизован или нет 
    3) После того как добавили эти две переменные, заходим в паблик OnPlayerConnect и добавляем:

    PHP код:
    aLogin[playerid] = 0// Обнуляем 
    4) Далее создаем саму команду.

    PHP код:
    CMD:alogin(playeridparams[])
    {
        if(
    PlayerInfo[playerid][pAdmin] == 0) return true;//Если не администратор, то команда не будет работать
        
    if(aLogin[playerid] == 1) return SendClientMessage(playerid,-1,"Вы уже авторизованы как администратор");
        if(
    sscanf(params"i"params[0])) return SendClientMessage(playerid,-1,"/alogin [пароль]");
        if(
    params[0] == password)
        {
            
    aLogin[playerid] = 1;
            
    SendClientMessage(playerid,-1,"Вы авторизовались как администратор");
        }
        return 
    true;

    5) Во все администраторские команды добавляем проверку:

    PHP код:
    if(aLogin[playerid] != 1) return SendClientMessage(playerid,-1,"Вы не авторизованы как администратор"); 
    Может лучшее будет bool?

  4. #4
    Аватар для DmX
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.04.2013
    Адрес
    Краснодар
    Сообщений
    292
    Репутация:
    23 ±
    Цитата Сообщение от Bublik_Public Посмотреть сообщение
    Может лучшее будет bool?
    Без разницы. Можно и bool.

  5. #5
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Цитата Сообщение от DmX Посмотреть сообщение
    Без разницы. Можно и bool.
    Ну если 0, 1 будут только значение, можно bool + char

  6. #6
    Аватар для DmX
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.04.2013
    Адрес
    Краснодар
    Сообщений
    292
    Репутация:
    23 ±
    Цитата Сообщение от Bublik_Public Посмотреть сообщение
    Ну если 0, 1 будут только значение, можно bool + char
    Разницы нет, кому как удобней.

  7. #7
    Аватар для Salvacore
    Инжунер-погромист

    Статус
    Оффлайн
    Регистрация
    10.05.2013
    Адрес
    Аҧсуа бызшәа
    Сообщений
    2,271
    Репутация:
    418 ±
    bool + char однозначно лучше.
    Ибо жрать меньше будет :)

  8. #8
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    А я-то думал, что уж все знают, что в pawn нет bool...

  9. #9
    Аватар для Valera_Trefilov
    Пользователь

    Статус
    Оффлайн
    Регистрация
    10.12.2013
    Сообщений
    35
    Репутация:
    7 ±
    о боже .

    PHP код:
    #define check_admin:: check_admin[playerid]=

    new bool:check_admin[50]; // сколько макс админов
    new pass_admin [50];// пароли

    //когда выдаем админ права:

    pass_admin[playerid]=0;

    // регаем:

    if(pass_admin[playerid]==0pass_admin[playerid]=strval(inputtext),check_admin::true;

    //в OnPlayerConnect : 
    check_admin::false;

    //в авторизацию админа : 

    check_admin::true;

    // проверка на админа:

    if(check_admin::=false) return true
    !profit, что сложного

  10. #10
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Цитата Сообщение от Valera_Trefilov Посмотреть сообщение
    о боже .

    Код:
    #define check_admin:: check_admin[playerid]=
    
    new bool:check_admin[50]; // сколько макс админов
    new pass_admin [50];// пароли
    
    //когда выдаем админ права:
    
    pass_admin[playerid]=0;
    
    // регаем:
    
    if(pass_admin[playerid]==0) pass_admin[playerid]=strval(inputtext),check_admin::true;
    
    //в OnPlayerConnect : 
    check_admin::false;
    
    //в авторизацию админа : 
    
    check_admin::true;
    
    // проверка на админа:
    
    if(check_admin::=false) return true;
    !profit, что сложного
    Что за сипаскаль ещё? Данный макрос только путает программиста, не более. И :: используется не для присваивания как-никак.
    Последний раз редактировалось L0ndl3m; 08.05.2015 в 21:28.

 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

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

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

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

Ваши права

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