• Из-за обновления GTA 5 (был добавлен новый патч) может временно не работать вход в RAGE Multiplayer.

    Ошибка: Ваша версия Grand Theft Auto V не поддерживается RAGE Multiplayer.
    ERROR: Your game version is not supported by RAGE Multiplayer.

    Данная ошибка говорит о том, что GTA V обновилась до новой версии (GTA Online тоже). Вам необходимо обновить саму игру в главном меню вашего приложения (Steam / Epic Games / Rockstar Games).
    Если после этого RAGE:MP все равно не работает - вам нужно дождаться выхода патча для самого мультиплеера (обычно это занимает от нескольких часов до нескольких дней).

    Новости и апдейты Rockstar Games - https://www.rockstargames.com/newswire/
    Статус всех служб для Rockstar Games Launcher и поддерживаемых игр: https://support.rockstargames.com/ru/servicestatus


    Grand Theft Auto 5 (+ GTA Online) последний раз были обновлены:

Вопрос Помощь с mp.keys.bind

leon03131

Участник портала
27 Авг 2021
5
0
23
Код:
mp.keys.bind(0x77, false, function () {
    if (!loggedin || chatActive || editing || new Date().getTime() - lastCheck < 1000 || global.menuOpened || !localplayer.getVariable("IS_ADMIN")) return;
    mp.events.callRemote('openAdminPanel');
    lastCheck = new Date().getTime();
});

mp.events.add("openAdminPanel", (json, json2) => {
  if (!loggedin || chatActive || editing || cuffed) return;
  global.adminPanel = mp.browsers.new('http://package/interface/admin.html');
  global.menuOpen();
  global.adminPanel.active = true;
  setTimeout(function() {
    global.adminPanel.execute(`admlist.active=true`);
    global.adminPanel.execute(`admlist.cmdlist=${json}`);
    global.adminPanel.execute(`admlist.items=${json2}`);
  }, 250);
});

mp.events.add("closeAdminPanel", () => {
  setTimeout(function() {
        global.menuClose();
        if(global.adminPanel)
        {
            global.adminPanel.active = false;
            global.adminPanel.destroy();
        }
    }, 100);
});
Как сделать чтоб на одну кнопку открывалась и закрывалась менюшка
 

XDeveluxe

Модератор
Команда форума
high coder
30 Авг 2021
2,291
1,533
211
27
Во-первых, если ты хочешь вызывать клиентский метод с клиента, то ты используешь не callRemote, а просто call.
Во-вторых, по главному вопросу - создай переменную, которая будет хранить текущее состояние панели (по стандарту false = выключено).
Внутри keys.bind используй эту переменную, чтобы определить открыта панель и её нужно закрыть или закрыта и нужно открыть.
 

akudinov28

Гуру
24 Фев 2021
328
192
106
JavaScript:
let adminPanelState = false;

mp.keys.bind(0x77, false, function () {
    if (!loggedin || chatActive || editing || new Date().getTime() - lastCheck < 1000 || global.menuOpened || !localplayer.getVariable("IS_ADMIN")) return;
    mp.events.call('toggleAdminPanel');
    lastCheck = new Date().getTime();
});

mp.events.add("toggleAdminPanel", () => {
    if(!adminPanelState) {
        mp.events.call('openAdminPanel');
        adminPanelState = true;
        return;
    }
   
    mp.events.call('closeAdminPanel');
    adminPanelState = false;
});

mp.events.add("openAdminPanel", (json, json2) => {
  if (!loggedin || chatActive || editing || cuffed) return;
  global.adminPanel = mp.browsers.new('http://package/interface/admin.html');
  global.menuOpen();
  global.adminPanel.active = true;
  setTimeout(function() {
    global.adminPanel.execute(`admlist.active=true`);
    global.adminPanel.execute(`admlist.cmdlist=${json}`);
    global.adminPanel.execute(`admlist.items=${json2}`);
  }, 250);
});

mp.events.add("closeAdminPanel", () => {
  setTimeout(function() {
        global.menuClose();
        if(global.adminPanel)
        {
            global.adminPanel.active = false;
            global.adminPanel.destroy();
        }
    }, 100);
});