Вопросы

R0m4ik
Новичок в PAWN

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

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


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

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

  • 2
LoX_1337
Активный
24 минуты назад, 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 , создано

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

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


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

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

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

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

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


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

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

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


Ссылка на сообщение
  • 0
R0m4ik
Новичок в PAWN
3 минуты назад, Cawfee сказал:

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

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

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


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

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

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

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

 

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


Ссылка на сообщение
  • 0
R0m4ik
Новичок в PAWN
41 минуту назад, 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
39 минут назад, 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
13 минут назад, Sleash`en сказал:

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

Вот /alogin

 

CMD:alogin(playerid, params[])
{
    if(PlayerLogged[playerid] == 0) return 1;
    if(PlayerInfo[playerid][pAdmin] < 1) return 1;
    if(AdminLogged[playerid] == true) return 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); }
        }

 

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


Ссылка на сообщение
  • 0
R0m4ik
Новичок в PAWN
7 минут назад, 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
19 минут назад, Sleash`en сказал:

@R0m4ik 

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


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

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

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

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


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

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

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


Ссылка на сообщение
  • 0
R0m4ik
Новичок в PAWN
6 минут назад, Cawfee сказал:

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

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

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

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

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

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


Ссылка на сообщение
  • 0
R0m4ik
Новичок в PAWN
3 минуты назад, 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

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

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

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


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

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

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

    • patrickk
      От patrickk
      Всем привет, решил написать dm сервер и довольно хорошим получился, даже на голову выше Goat dm. Оставил не решенную проблему тем что  у меня есть 4 локации с rp run и cj run ну а как добавить cj бег на те локации не знаю и как эта система работает. Надеюсь мне помогут знающие люди
    • Samolet
      От Samolet
      Здраствуйте, cоздаю копию Arizona на ОМП, опен мультиплеер, загрузил и подключил бд, но сервер не хочет вот лог :[2026-10-20T21:03:32+0300] [Info] Log file reloaded. Starting open.mp server (1.5.8.3079) from commit c6759bd8d265171ae3d86598895a23d5a8d92a3b Loading component $CAPI.so Successfully loaded component C-API (1.5.8.3079) with UID 10467dd8d4c56fc6 Loading component LegacyConfig.so Successfully loaded component LegacyConfig (1.5.8.3079) with UID 24ef6216838f9ffc Loading component NPCs.so Successfully loaded component NPCs (1.5.8.3079) with UID 3d0e59e87f4e90bc Loading component Recordings.so Successfully loaded component Recordings (1.5.8.3079) with UID 871144d399f5f613 Loading component Checkpoints.so Successfully loaded component Checkpoints (1.5.8.3079) with UID 44a937350d611dde Loading component TextDraws.so Successfully loaded component TextDraws (1.5.8.3079) with UID 9b5dc2b1d15c992a Loading component Pawn.so Successfully loaded component Pawn (1.5.8.3079) with UID 78906cd9f19c36a6 Loading component GangZones.so Successfully loaded component GangZones (1.5.8.3079) with UID b3351d11ee8d8056 Loading component Actors.so Successfully loaded component Actors (1.5.8.3079) with UID c81ca021eae2ad5c Loading component Pickups.so Successfully loaded component Pickups (1.5.8.3079) with UID cf304faa363dd971 Loading component Dialogs.so Successfully loaded component Dialogs (1.5.8.3079) with UID 44a111350d611dde Loading component Objects.so Successfully loaded component Objects (1.5.8.3079) with UID 59f8415f72da6160 Loading component Console.so Successfully loaded component Console (1.5.8.3079) with UID bfa24e49d0c95ee4 Loading component TextLabels.so Successfully loaded component TextLabels (1.5.8.3079) with UID a0c57ea80a009742 Loading component Variables.so Successfully loaded component Variables (1.5.8.3079) with UID 75e121848bc01fa2 Loading component Databases.so Successfully loaded component Databases (1.5.8.3079) with UID 80092e7eb5821a96 Loading component LegacyNetwork.so Successfully loaded component RakNetLegacyNetwork (1.5.8.3079) with UID ea9799fd79cf8442 Loading component CustomModels.so Successfully loaded component CustomModels (1.5.8.3079) with UID 15e3cb1e7c77ffff Loading component Menus.so Successfully loaded component Menus (1.5.8.3079) with UID 621e219eb97ee0b2 Loading component Vehicles.so Successfully loaded component Vehicles (1.5.8.3079) with UID 3f1f62ee9e22ab19 Loading component Classes.so Successfully loaded component Classes (1.5.8.3079) with UID 8cfb3183976da208 Loading component Timers.so Successfully loaded component Timers (1.5.8.3079) with UID 2ad8124c5ea257a3 Loaded 22 component(s) from /home/gs113492/components Executing Server Config... [2026-10-20T21:03:33+0300] [Info] Loading plugin: crashdetect.so [2026-10-20T21:03:33+0300] [Info] CrashDetect plugin 4.19 [2026-10-20T21:03:33+0300] [Info] Loading plugin: mapandreas.so [2026-10-20T21:03:33+0300] [Info] Loading plugin: streamer.so [2026-10-20T21:03:33+0300] [Info] *** Streamer Plugin v2.9.4 by Incognito loaded *** [2026-10-20T21:03:33+0300] [Info] Loading plugin: sscanf.so [2026-10-20T21:03:33+0300] [Info] [2026-10-20T21:03:33+0300] [Info] =============================== [2026-10-20T21:03:33+0300] [Info] sscanf plugin loaded. [2026-10-20T21:03:33+0300] [Info] Version: 2.8.3 [2026-10-20T21:03:33+0300] [Info] (c) 2018 Alex "Y_Less" Cole [2026-10-20T21:03:33+0300] [Info] =============================== [2026-10-20T21:03:33+0300] [Info] Loading plugin: TOTP.so [2026-10-20T21:03:33+0300] [Info] TOTP plugin v1.0.1 by Games loaded. [2026-10-20T21:03:33+0300] [Info] Loading plugin: mysql_static.so [2026-10-20T21:03:33+0300] [Info] >> plugin.mysql: R39-6 successfully loaded. [2026-10-20T21:03:33+0300] [Info] Loading plugin: libpawn_json.so [2026-10-20T21:03:34+0300] [Error] Function not registered: YSF_SetTickRate [2026-10-20T21:03:34+0300] [Error] Function not registered: PC_Init [2026-10-20T21:03:34+0300] [Info] [debug] Run time error 19: "File or function is not found" [2026-10-20T21:03:34+0300] [Info] [debug] PC_Init [2026-10-20T21:03:34+0300] [Info] [debug] YSF_SetTickRate [2026-10-20T21:03:34+0300] [Error] File or function is not found [2026-10-20T21:03:34+0300] [Error] Function not registered: PC_RegAlias [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_GetWriteOffset [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_Reset [2026-10-20T21:03:34+0300] [Error] Function not registered: PR_RegHandler [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_Delete [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_New [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_ResetReadPointer [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_SetWriteOffset [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_IgnoreBits [2026-10-20T21:03:34+0300] [Error] Function not registered: PR_Init [2026-10-20T21:03:34+0300] [Error] Function not registered: PR_SendRPC [2026-10-20T21:03:34+0300] [Error] Function not registered: PR_SendPacket [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_WriteValue [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_GetNumberOfBytesUsed [2026-10-20T21:03:34+0300] [Error] Function not registered: BS_ReadValue [2026-10-20T21:03:34+0300] [Error] Function not registered: PC_Init [2026-10-20T21:03:34+0300] [Info] [debug] Run time error 19: "File or function is not found" [2026-10-20T21:03:34+0300] [Info] [debug] PC_Init [2026-10-20T21:03:34+0300] [Info] [debug] BS_ReadValue [2026-10-20T21:03:34+0300] [Info] [debug] BS_GetNumberOfBytesUsed [2026-10-20T21:03:34+0300] [Info] [debug] BS_WriteValue [2026-10-20T21:03:34+0300] [Info] [debug] PR_SendPacket [2026-10-20T21:03:34+0300] [Info] [debug] PR_SendRPC [2026-10-20T21:03:34+0300] [Info] [debug] PR_Init [2026-10-20T21:03:34+0300] [Info] [debug] BS_IgnoreBits [2026-10-20T21:03:34+0300] [Info] [debug] BS_SetWriteOffset [2026-10-20T21:03:34+0300] [Info] [debug] BS_ResetReadPointer [2026-10-20T21:03:34+0300] [Info] [debug] BS_New [2026-10-20T21:03:34+0300] [Info] [debug] BS_Delete [2026-10-20T21:03:34+0300] [Info] [debug] PR_RegHandler [2026-10-20T21:03:34+0300] [Info] [debug] BS_Reset [2026-10-20T21:03:34+0300] [Info] [debug] BS_GetWriteOffset [2026-10-20T21:03:34+0300] [Info] [debug] PC_RegAlias [2026-10-20T21:03:34+0300] [Error] File or function is not found [2026-10-20T21:03:34+0300] [Info] [debug] Run time error 19: "File or function is not found" [2026-10-20T21:03:34+0300] [Info] [debug] PC_Init [2026-10-20T21:03:34+0300] [Info] [debug] YSF_SetTickRate [2026-10-20T21:03:34+0300] [Error] File or function is not found [2026-10-20T21:03:34+0300] [Info] [debug] Run time error 19: "File or function is not found" [2026-10-20T21:03:34+0300] [Info] [debug] PC_Init [2026-10-20T21:03:34+0300] [Info] [debug] BS_ReadValue [2026-10-20T21:03:34+0300] [Info] [debug] BS_GetNumberOfBytesUsed [2026-10-20T21:03:34+0300] [Info] [debug] BS_WriteValue [2026-10-20T21:03:34+0300] [Info] [debug] PR_SendPacket [2026-10-20T21:03:34+0300] [Info] [debug] PR_SendRPC [2026-10-20T21:03:34+0300] [Info] [debug] PR_Init [2026-10-20T21:03:34+0300] [Info] [debug] BS_IgnoreBits [2026-10-20T21:03:34+0300] [Info] [debug] BS_SetWriteOffset [2026-10-20T21:03:34+0300] [Info] [debug] BS_ResetReadPointer [2026-10-20T21:03:34+0300] [Info] [debug] BS_New [2026-10-20T21:03:34+0300] [Info] [debug] BS_Delete [2026-10-20T21:03:34+0300] [Info] [debug] PR_RegHandler [2026-10-20T21:03:34+0300] [Info] [debug] BS_Reset [2026-10-20T21:03:34+0300] [Info] [debug] BS_GetWriteOffset [2026-10-20T21:03:34+0300] [Info] [debug] PC_RegAlias [2026-10-20T21:03:34+0300] [Info] Legacy Network started on ***.**.**.***:2717. Помогите пожалуйста