• 0
Harroybay

Ошибка меню при добавлении Правила

Вопросы

Привет всем. Наверно для вас это будет что-то не обычное, но всё-же это язык pawn)
Для кс 1.6

Такая проблема появилась. Есть в главном моде квар/правило (как хотите называйте)

g_iAlivePlayersNum[g_iUserTeam[id]] >= g_iAllCvars[RESPAWN_PLAYER_NUM][id]

Т.к у меня JailBreak сборка, я захотел во время дуэлей отключить меню привилегий
И решил этим правилом воспользоваться. При 1 зеке меню привилегий не должно открываться
Но т.к без проверки на флаг он не хочет работать, я добавил такую строку

(get_user_flags(id) & ADMIN_ALL)

И получилось вот что:

if((g_iDayMode == 1 || g_iDayMode == 2) && (get_user_flags(id) & ADMIN_ALL) && g_iAlivePlayersNum[g_iUserTeam[id]] >= g_iAllCvars[RESPAWN_PLAYER_NUM]) return Show_privmenu(id);

Но теперь для всех игроков оно вообще не открывается не зависимо сколько игроков или какая привилегия (даже владелец)
Компилируется без ошибок

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


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

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

  • 0
В 10.07.2020 в 00:28, Harroybay сказал:

if((g_iDayMode == 1 || g_iDayMode == 2) && (get_user_flags(id) & ADMIN_ALL) && g_iAlivePlayersNum[g_iUserTeam[id]] >= g_iAllCvars[RESPAWN_PLAYER_NUM]) return Show_privmenu(id);


А теперь дай объяснение всему условию.

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


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

g_iDayMode == 1 || g_iDayMode == 2 - это чтобы меню не работало в субботу и воскресенье
&& - это считается как И
(get_user_flags(id) & ADMIN_ALL) - это проверка на флаг. Если у человека нету данного флага - меню не доступно
g_iAlivePlayersNum(g_iUserTeam[id]] - это квар, через который определяется количество игроков заданном в специальном конфиге
>= g_iAllCrvars[RESPAWN_PLAYER_NUM]) - тот самый квар который при 1 зеке (если выставить в конфиге) отключает меню
return Show_privmenu(id); - думаю тут и так понятно. Открывает привилегии меню если проверка на флаг успешно пройдена и игроков больше чем 1

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


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

А так если вкратце, то данное правило выключает меню во время 1 зека (если выставить в конфиге)

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


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

@Harroybay попробуйте убрать все условия, кроме одного, чтобы найти из-за какого это все не работает. Большего посоветовать вряд ли получится, ибо лично я вообще не понимаю, что такое квар, зеки и JailBreak. Наверное, Вам стоит обратиться на форум разработчиков CS 1.6

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


Ссылка на сообщение
  • 0
В 11.07.2020 в 17:52, DEST сказал:

@Harroybay попробуйте убрать все условия, кроме одного, чтобы найти из-за какого это все не работает. Большего посоветовать вряд ли получится, ибо лично я вообще не понимаю, что такое квар, зеки и JailBreak. Наверное, Вам стоит обратиться на форум разработчиков CS 1.6

Искал уже, ни кто не отвечает. только тут отвечают. А так ладно попробую убрать все условия кроме 1, спасибо за совет :)

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


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

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

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

    • Danya_Lucky
      От Danya_Lucky
      CMD:car(playerid, params[])
      {
          new fmt_text[2640], Cache: result, id;
          mysql_format(mysql, fmt_text, sizeof fmt_text, "SELECT * FROM ownable_cars WHERE owner_id='%d'", GetPlayerAccountID(playerid));
          result = mysql_query(mysql, fmt_text, true);
          new rows = cache_num_rows();
          if(!rows) return SendClientMessage(playerid, 0x999999FF, "У Вас нет личного транспорта");
          new model_id, region[10], car_number[10];
          format(fmt_text, sizeof fmt_text, "");
          for(new i = 0; i < rows; i ++)
          {
              id = cache_get_field_content_int(i, "id");
              model_id = cache_get_field_content_int(i, "model_id") - 400;
              cache_get_field_content(i, "number", car_number);
              cache_get_field_content(i, "region", region);
              STRING_GLOBAL[0] = EOS;
              format(STRING_GLOBAL, sizeof STRING_GLOBAL, "{FFFFFF}%d. %s {888888}[%s | %s]\n", i + 1, GetVehicleInfo(model_id, VI_NAME), car_number, region);
              strcat(fmt_text, STRING_GLOBAL);
              SetPlayerListitemValue(playerid, i, id);
          }
          Dialog(playerid, DIALOG_OWNABLE_CAR_LIST, DIALOG_STYLE_LIST,"{0099FF}Выберите транспорт",fmt_text,"Выбрать", "Закрыть");
          cache_delete(result);
          return 1;
      }
    • Danya_Lucky
      От Danya_Lucky
      Как сделать /gh на визуал ник?
       
    • Danya_Lucky
      От Danya_Lucky
      Как сделать падающие машины /addpcar как на поинте?
    • Iskon
      От Iskon
      Что не так?
      IPacket:12(playerid, BitStream:bs)
      {
      print("packet 12 recieved");
       
        new authKey[PR_INCOMING_PACKET];
          BS_IgnoreBits(bs, 8);
          print(BS_ReadValue(bs, PR_STRING, authKey[authkeyv], sizeof(authKey[authkeyv)));
        return 1;
      }
       
      Структура пакета:
      struct stAuthKey
      {
      uint8_t packetId;
      uint8_t keyLength;
      char[] key;
      };
       
      Ошибка:
      error 017: undefined symbol "authkeyv"
      error 080: unknown symbol, or not a constant symbol (symbol "authkeyv")
    • NOD28
      От NOD28
      Есть код и не могу понять, где я ошибся. Нужно сделать так, чтобы при запуске сервера ставилось имя сервера, которое берётся из дейфайна. Но когда захожу CR-MP Браузер, показывается SERVER_NAME. (вопрос банальный, но я не понимаю)
      //---defines--- #define SERVER_NAME "Test RP" //---code--- public OnGameModeInit() {     /*  print("GameModeInit()");     SetGameModeText("Blank Script");*/     SendRconCommand("hostname SERVER_NAME");     AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);     return 1; }