This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Проблема Отсутствует курсор при открытом окне и можно управлять персонажем

Den4a7777777777

Участник портала
3 Сен 2024
25
5
5
Отсутствует курсор при открытом окне и можно управлять персонажем после того как открывается окно авторизации

index.js

JavaScript:
mp.events.add('playerReady', () => {
    let browser = mp.browsers.new('package://auth/index.html'); 

    setTimeout(function() {
        mp.gui.cursor.show(true, true); 
        mp.players.local.freezePosition(true); 

        browser.execute("mp.invoke('focus', true)");
    }, 500); 


    mp.events.add('closeAuth', () => {
        if (browser) {
            browser.execute("mp.invoke('focus', false)");
            browser.destroy(); 
            browser = null;
        }

        mp.gui.cursor.show(false, false); 
        mp.players.local.freezePosition(false); 
    });
});
 

Jerry (ChatGPT)

AI-powered language model
VIP
helper
17 Окт 2023
1,655
1,283
5
Попробуйте задать focus окну браузера сразу после его создания, без задержки в 500 миллисекунд:

JavaScript:
mp.events.add('playerReady', () => {
    let browser = mp.browsers.new('package://auth/index.html'); 

    browser.execute("mp.invoke('focus', true)");
    mp.gui.cursor.show(true, true); 
    mp.players.local.freezePosition(true); 

    mp.events.add('closeAuth', () => {
        if (browser) {
            browser.execute("mp.invoke('focus', false)");
            browser.destroy(); 
            browser = null;
        }

        mp.gui.cursor.show(false, false); 
        mp.players.local.freezePosition(false); 
    });
});
 

Den4a7777777777

Участник портала
3 Сен 2024
25
5
5
Курсора по прежнему нету.
 

Den4a7777777777

Участник портала
3 Сен 2024
25
5
5
Код который отправил в изначальное сообщение содержал ошибку. Вот изначальный мой код без ошибки, в котором по прежднему нету курсора и персонаж может свободно двигатся


JavaScript:
mp.events.add('playerReady', () => {
    let browser = mp.browsers.new('package://auth/index.html'); 

    setTimeout(function() {
        mp.gui.cursor.show(true, true); 
        mp.players.local.freezePosition(true); 

        browser.execute("mp.invoke('focus', true)");
    }, 500); 

    mp.events.add('closeAuth', () => {
        if (browser) {
            browser.execute("mp.invoke('focus', false)"); 
            browser.destroy(); 
            browser = null; 
        }

      
        mp.gui.cursor.show(false, false); 
        mp.players.local.freezePosition(false); 
    });
});
 

Den4a7777777777

Участник портала
3 Сен 2024
25
5
5
Проблема актуальна
 

uaa007

Начинающий специалист
23 Авг 2023
100
23
50
mp.gui.cursor.show(true, true); mp.players.local.freezePosition(true);

browser.execute("mp.invoke('focus', true)");
У тебя тут первая строка и третья одно и тоже делают, оставь только третью

Ну и первая и вторая тоже одно и тоже делают

Попробуй поудалять построчно и посмотреть на реакцию игры
 

xstrasupra

Активный участник
29 Сен 2022
29
6
40
Привет, я не лучший бэк и фронт, но если поможет, то я был рад помочь
Сделать блок движение мышки можно допустим таким образом: На стороне клиента добавь в свой сурс функций пользовательский ивент (не знаю пользовательский ли он):

JavaScript:
ui.DisableMouseControl = false;

Если говорить о внутриигровых ивентах, то могут помочь ссылки ниже:

https://wiki.rage.mp/index.php?title=Controls::disableAllControlActions
https://wiki.rage.mp/index.php?title=Controls::enableAllControlActions
https://wiki.rage.mp/index.php?title=Controls::enableControlAction

Пример кода:

JavaScript:
// mouse on
mp.game.controls.disableAllControlActions(2);

// mouse off
mp.game.controls.enableAllControlActions(2);

Пример моей функции с использованием первого ивента:

JavaScript:
функция.show = function() { // Функция для показа интерфейса
    mp.gui.cursor.show(false, true);
    ui.DisableMouseControl = true;
    hidden = false;
    ui.hideHud();
    mp.game.graphics.transitionToBlurred(100);
    methods.blockKeys(true);
    ui.callCef('название', '{"type": "show"}');
};

Так-же если ты заметил, я использую внутриигровой ивент с отображением курсора:

JavaScript:
mp.gui.cursor.show(false, true);

Думаю по ссылке ниже ты поймёшь как правильно использовать его:

https://wiki.rage.mp/index.php?title=Cursor.show