Вопросы

R0m4ik
Новичок в PAWN

Привет всем пользователям pawno-rus.ru задаюсь вопросом как заменить обычный /alogin на запрос авторизации при вводе любой команды даже не существующей? Допустим мы ввели команду "/ksdjaksdsajk" и нас попросило авторизоваться в админку тем самым чтобы можно было заменить /alogin как так сделать?

Поделиться сообщением


Ссылка на сообщение

22 ответа на этот вопрос

  • 0
Cawfee
Великий Гуру

@R0m4ik, используете ли какой-нибудь командный процессор? Если да, то какой? Команда /alogin в моде есть ведь?

Поделиться сообщением


Ссылка на сообщение
  • 0
R0m4ik
Новичок в PAWN
  В 1/22/2022 в 09:12, Cawfee сказал:

@R0m4ik, используете ли какой-нибудь командный процессор? Если да, то какой? Команда /alogin в моде есть ведь?

Читать далее...  

Да zcmd, /alogin в моде есть.

Поделиться сообщением


Ссылка на сообщение
  • 0
Cawfee
Великий Гуру

@R0m4ik, тогда просто в начало OnPlayerCommandReceived следует добавить вызов команды /alogin, если игрок является администратором. В результате, при вводе администратором любой команды, сначала будет вызвана команда /alogin, где осуществится процесс авторизации, затем - та команда, которую администратор вызывал изначально. Что-нибудь около такого:
 

public OnPlayerCommandReceived(playerid, cmdtext[]) {
    if (/* здесь проверка на администратора */) {
        cmd_alogin(playerid);
    }

    // здесь ваш код, если он есть
}

 

Поделиться сообщением


Ссылка на сообщение
  • 0
R0m4ik
Новичок в PAWN
  В 1/22/2022 в 09:26, Cawfee сказал:

@R0m4ik, тогда просто в начало OnPlayerCommandReceived следует добавить вызов команды /alogin, если игрок является администратором. В результате, при вводе администратором любой команды, сначала будет вызвана команда /alogin, где осуществится процесс авторизации, затем - та команда, которую администратор вызывал изначально. Что-нибудь около такого:
 

public OnPlayerCommandReceived(playerid, cmdtext[]) {
    if (/* здесь проверка на администратора */) {
        cmd_alogin(playerid);
    }

    // здесь ваш код, если он есть
}

 

Читать далее...  

Я вставил код но появилась проблема при компиляции появляется появлялся варнинг а после проверки вылетел сервер + мод перестал компилиться вот мой код:

public OnPlayerCommandReceived(playerid, cmdtext[])
{
    if (PlayerInfo[playerid][pAdmin] > 0) {
        cmd_alogin(playerid);
    }
    format(totalstring, 256, "{ffffff}Введите Ваш пароль от админ.доступа",PlayerInfo[playerid][pSendername],PlayerInfo[playerid][pAdmin]);
    ShowPlayerDialog(playerid, D_ALOGIN, 1, "{ffffff}Авторизация", totalstring, "Далее",">>>");
}

  

Поделиться сообщением


Ссылка на сообщение
  • 0
Cawfee
Великий Гуру

@R0m4ik, тогда уж приводите к такому виду:

public OnPlayerCommandReceived(playerid, cmdtext[]) {
    if (PlayerInfo[playerid][pAdmin] > 0) {
        ShowPlayerDialog(playerid, D_ALOGIN, 1"{ffffff}Авторизация""{ffffff}Введите Ваш пароль от админ.доступа""Далее",">>>");
    }
}

 

Поделиться сообщением


Ссылка на сообщение
  • 0
Sleash
Завсегдатый

@R0m4ik  + Сервер скорее всего вылетел из-за format, так как не было запроса на переменные, но вы их впихнули после текста.

Поделиться сообщением


Ссылка на сообщение
  • 0
R0m4ik
Новичок в PAWN
  В 1/22/2022 в 10:24, Cawfee сказал:

@R0m4ik, тогда уж приводите к такому виду:

public OnPlayerCommandReceived(playerid, cmdtext[]) {
    if (PlayerInfo[playerid][pAdmin] > 0) {
        ShowPlayerDialog(playerid, D_ALOGIN, 1"{ffffff}Авторизация""{ffffff}Введите Ваш пароль от админ.доступа""Далее",">>>");
    }
}

 

Читать далее...  

Казалось бы все отлично но как теперь решить эту проблему? 

 

https://youtu.be/HTPZI_PVZKc если что могу скинуть код где пишет сообщение "Вы авторизовались!" и /alogin могу скинуть

Поделиться сообщением


Ссылка на сообщение
  • 0
R0m4ik
Новичок в PAWN
  В 1/22/2022 в 11:07, Sleash`en сказал:

@R0m4ik дайте код диалога, к которому ведёт /alogin

Читать далее...  

Вот /alogin

 

CMD:alogin(playerid, params[])
{
    if(PlayerLogged[playerid] == 0return 1;
    if(PlayerInfo[playerid][pAdmin] < 1return 1;
    if(AdminLogged[playerid] == truereturn SendClientMessage(playerid, COLOR_GREY, "Вы уже авторизованы!");
    format(totalstring, 256"{ffffff}Введите Ваш пароль от админ.доступа",PlayerInfo[playerid][pSendername],PlayerInfo[playerid][pAdmin]);
    ShowPlayerDialog(playerid, D_ALOGIN, 1"{ffffff}Авторизация", totalstring, "Далее",">>>");
    return true;
}

А вот Диалог D_ALOGIN

 

        case D_ALOGIN:
        {
            if(response)
            {
                if(!strlen(inputtext))
                {
                    format(totalstring, 256"{ffffff}Введите Ваш пароль от админ.доступа",PlayerInfo[playerid][pSendername],PlayerInfo[playerid][pAdmin]);
                    ShowPlayerDialog(playerid, D_ALOGIN, 1"{ffffff}Авторизация", totalstring, "Далее",">>>");
                }
                else if(!strcmp(inputtext, GetAccount(PlayerInfo[playerid][pSendername], "dostup"), true))
                {
                    AdminLogged[playerid] = true;
                    SendClientMessage(playerid, COLOR_GREY, " Вы авторизовались!");
                    TogglePlayerAdminAuthorization(playerid, !IsAdminAuthorized(playerid));
                    if(IsAdminAuthorized(playerid))
                    return 1;
                }
                else
                {
                    SendClientMessage(playerid,COLOR_LIGHTRED, " Вы ввели неверный пароль!");
                    Kick(playerid);
                    format(string, 128" %s не прошел авторизацию в админ.панеле ( IP: %s )",PlayerInfo[playerid][pSendername],PlayerInfo[playerid][pIP]);
                    SendAdminMessage(0xFF4FD9FF, string);

                }
            }
            else { format(string, 128" %s отказался авторизовываться в админке ( IP: %s )",PlayerInfo[playerid][pSendername],PlayerInfo[playerid][pIP]); SendAdminMessage(0xFF4FD9FF, string); Kick(playerid); }
        }

 

Поделиться сообщением


Ссылка на сообщение
  • 1
Sleash
Завсегдатый
public OnPlayerCommandReceived(playerid, cmdtext[])
{
    if (PlayerInfo[playerid][pAdmin] > 0 && !AdminLogged[playerid])
    {
        ShowPlayerDialog(playerid, D_ALOGIN, 1"{ffffff}Авторизация""{ffffff}Введите Ваш пароль от админ.доступа""Далее",">>>");
    }
}

@R0m4ik Вот, это должно помочь.

Проблемы была в том,что не было проверки на то, авторизовывался ли ранее администратор.

Отредактировано пользователем Sleash`en

Поделиться сообщением


Ссылка на сообщение
  • 0
R0m4ik
Новичок в PAWN
  В 1/22/2022 в 11:25, Sleash`en сказал:
public OnPlayerCommandReceived(playerid, cmdtext[])
{
    if (PlayerInfo[playerid][pAdmin] > 0 && AdminLogged[playerid] == false)
    {
        ShowPlayerDialog(playerid, D_ALOGIN, 1"{ffffff}Авторизация""{ffffff}Введите Ваш пароль от админ.доступа""Далее",">>>");
    }
}

@R0m4ik Вот, это должно помочь.

Проблемы была в том,что не было проверки на то, авторизовывался ли ранее администратор.

Читать далее...  

Это помогает но теперь перестали работать команды. Может ли быть это связано с тем что у меня в OnPlayerCommandPerformed стоит это вобще на сервере когда ввожу команду после авторизации в админке ничего не происходит даже не пишет это сообщение

    #pragma unused cmdtext
    if(!success) return SendClientMessage(playerid,-1," Такой команды не существует, команды сервера вы можете посмотреть в {00ff00}/help");

 

Отредактировано пользователем R0m4ik

Поделиться сообщением


Ссылка на сообщение
  • 0
Sleash
Завсегдатый

@R0m4ik 

попробуйте так:

if(success == -1) return SendClientMessage(playerid,-1," Такой команды не существует, команды сервера вы можете посмотреть в {00ff00}/help");

Поделиться сообщением


Ссылка на сообщение
  • 0
R0m4ik
Новичок в PAWN
  В 1/22/2022 в 11:41, Sleash`en сказал:

@R0m4ik 

попробуйте так:

if(success == -1) return SendClientMessage(playerid,-1," Такой команды не существует, команды сервера вы можете посмотреть в {00ff00}/help");
Читать далее...  

Не работает. UPD: Убрал строку с сообщение что кмд не существует а проблема с /alogin так и осталась

Отредактировано пользователем R0m4ik

Поделиться сообщением


Ссылка на сообщение
  • 0
Cawfee
Великий Гуру

@R0m4ik, вы вводите какую-нибудь команду. Появляется окно с предложением ввести пароль администратора. Вводите. И далее ничего не происходит? А если опять набрать команду?

Поделиться сообщением


Ссылка на сообщение
  • 0
R0m4ik
Новичок в PAWN
  В 1/22/2022 в 13:00, Cawfee сказал:

@R0m4ik, вы вводите какую-нибудь команду. Появляется окно с предложением ввести пароль администратора. Вводите. И далее ничего не происходит? А если опять набрать команду?

Читать далее...  

да я ввожу пароль от админки пишет что я авторизовался но если ввести существующею команду допустим /a, /mm/ /admins, в чат ничего не напишет и консоли тоже 0 реакций.

Не напишет даже "Введите /a [слово]"

И такая фигня будет твориться даже если вы игрок.

Отредактировано пользователем R0m4ik

Поделиться сообщением


Ссылка на сообщение
  • 0
R0m4ik
Новичок в PAWN
  В 1/22/2022 в 14:21, Cawfee сказал:

@R0m4ik, как сейчас выглядит OnPlayerCommandReceived?

Читать далее...  

@Cawfee вот так 

public OnPlayerCommandReceived(playerid, cmdtext[])
{
    if (PlayerInfo[playerid][pAdmin] > 0 && AdminLogged[playerid] == false)
    {
        ShowPlayerDialog(playerid, D_ALOGIN, 1"{ffffff}Авторизация""{ffffff}Введите Ваш пароль от админ.доступа""Далее",">>>");
    }
}

 

Отредактировано пользователем R0m4ik

Поделиться сообщением


Ссылка на сообщение
  • 0
LoX_1337
Активный

@R0m4ik

public OnPlayerCommandReceived(playerid, cmdtext[])
{
    if (PlayerInfo[playerid][pAdmin] > 0 && AdminLogged[playerid] == false)
    {
        ShowPlayerDialog(playerid, D_ALOGIN, 1"{ffffff}Авторизация""{ffffff}Введите Ваш пароль от админ.доступа""Далее",">>>");
    }
    return 1;
}

Отредактировано пользователем Cawfee

Поделиться сообщением


Ссылка на сообщение
  • 0
R0m4ik
Новичок в PAWN

Вылетает Компилятор

Просто пустое окно а внизу пишет типо файл сохранен

Поделиться сообщением


Ссылка на сообщение
  • 2
LoX_1337
Активный
  В 1/22/2022 в 14:55, R0m4ik сказал:

Вылетает Компилятор

Просто пустое окно а внизу пишет типо файл сохранен

Читать далее...  
public OnPlayerCommandReceived(playerid, cmdtext[])
{
    if (PlayerInfo[playerid][pAdmin] > 0 && AdminLogged[playerid] == false)
    {
        ShowPlayerDialog(playerid, D_ALOGIN, 1"{ffffff}Авторизация""{ffffff}Введите Ваш пароль от админ.доступа""Далее",">>>");
        return 0;
    }
    return 1;
}

Проверьте весь вставленный код, возможно где-то упущена скобка.

Отредактировано пользователем LoX_1337

Заметка от DEST , создано

Не нужно использовать кнопку "Цитата" при ответе на все сообщение. Для этого используйте кнопку "@ Ответить".
Цитата обычно применяется тогда, когда необходимо процитировать лишь часть текста.

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Jasper231
      От Jasper231
      Идет набор в команду для создания CRMP MOBILE проекта. Нам нужны
      1) Кодеры
      2) Мапперы
      3) Люди которые вообще разбираются в создании серверов
       
      об зарпалте договоримся и об остальном поговорим в вк: @haslyyyim
    • otec
      От otec
      Копия радмира
      ║☑️Название CORVUS CRMP
      ║☑️Сервер у которого есть будущее и будет
      ║☑️Адекватная администрация
      ║☑️Идут наборы в Лидеры, Админы.
      ║☑️Вступайте в Telegram: t.me/corvusgta « Вступай!
      ║☑️Вступайте в ВКонтакте: vk.com/corvus_crmp « Вступай!
      ║☑️Постоянные ПРИЗЫ - МП | Интересный Мод
      ║☑️Все новости - обновления в Telegram и ВКонтакте
      ║☑️Сайт - corvus-crmp.ru
      ║☑️Форум - forum.corvus-crmp.ru
      ║☑️Скачать лаунчер - corvus-crmp.ru
      ║☑️Заходи мы ждем тебя
      ║☑️В случае возможных ошибок пишите сюда:@corvus_help_bot
    • vicegame
      От vicegame
      Доброго времени суток уважаемые форумчане
      Хочу представить наши услуги и цены:
      GTA SAMP от 75руб
      GTA CRMP от 75 руб
      GTA MTA от 120 руб
      Для каждого тарифа неограниченные слоты, оплата только за ресурсы 
      Удобная панель управления и широкий функционал 
      Работаем с 2023 года!
       
      Также имеются БЕСПЛАТНЫЕ тарифы для (ознакомительных целей)
       
      Мощные процессоры Ryzen 5950X (Германия)
       
      Платежная система YooKassa на борту:
      Банковские карты
      SberPay
      TinkoffPay
      Yoomoney

      Ссылка на хостинг: ТЫК
    • hatriyikko
      От hatriyikko
      Требуется мобильная сборка мод + клиент + лаунчер

      Копия Радмира, Блэк Раши или что-то другое с аналогичным функционалом. Основной упор на бизнесы, чтобы всё исправно работало
       
      Напишите сколько это будет стоить?

      В дальнейшем также могут понадобиться какие то доработки мода, если всё ок рассматриваю долгосрочное сотрудничество

      Связь тут или в тг @kovart7