Lua можно ли сделать чтоб блокировалась мышка и клавиатура в сампе во время выполнения блока кода

ппаааа

Потрачен
Автор темы
85
27
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
как это сделать если возможно пж
 

MLycoris

На вид оружие массового семяизвержения
Проверенный
1,981
2,196
Lua:
st = not st -- состояние вкл выкл (пример)
lockPlayerControl(st) -- блокировка управ персом
freezeCharPosition(PLAYER_PED, st) -- блокировка перемещения перса
sampSetCursorMode(st and 4 or 0) -- блокировка движения мышки (4 заблок, 0 разблок)
 

ппаааа

Потрачен
Автор темы
85
27
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Lua:
st = not st -- состояние вкл выкл (пример)
lockPlayerControl(st) -- блокировка управ персом
freezeCharPosition(PLAYER_PED, st) -- блокировка перемещения перса
sampSetCursorMode(st and 4 or 0) -- блокировка движения мышки (4 заблок, 0 разблок)
А можно заблокировать закрытие диалогов игроком? Чтобы не мешало выполнению

А можно заблокировать закрытие диалогов игроком? Чтобы не мешало выполнению
Ну типа закрытие escape и тд чтоб диалог не закрывалчя
 

MLycoris

На вид оружие массового семяизвержения
Проверенный
1,981
2,196
А можно заблокировать закрытие диалогов игроком? Чтобы не мешало выполнению


Ну типа закрытие escape и тд чтоб диалог не закрывалчя
могу разве что такой пример предложить, блокирует ескейп и ентер при открытом диалоге и активном скрипте
Lua:
local st = false
function main()
    while true do wait(0)
        if wasKeyPressed(0x52) then -- если нажата клавиша R
            st = not st -- состояние вкл выкл (пример)
            lockPlayerControl(st) -- блокировка управ персом
            freezeCharPosition(PLAYER_PED, st) -- блокировка перемещения перса
            sampSetCursorMode(st and 4 or 0) -- блокировка движения мышки (4 заблок, 0 разблок)
        end
    end
end
function onWindowMessage(msg, wparam, lparam)
    if st then -- если сост активно, то
        if sampIsDialogActive() then -- проверка на открытый диалог
            if wparam == 27 or wparam == 13 then -- если нажат екс или ентер, то
                consumeWindowMessage(true, false)
            end
        end
    end
end
 

ппаааа

Потрачен
Автор темы
85
27
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
могу разве что такой пример предложить, блокирует ескейп и ентер при открытом диалоге и активном скрипте
Lua:
local st = false
function main()
    while true do wait(0)
        if wasKeyPressed(0x52) then -- если нажата клавиша R
            st = not st -- состояние вкл выкл (пример)
            lockPlayerControl(st) -- блокировка управ персом
            freezeCharPosition(PLAYER_PED, st) -- блокировка перемещения перса
            sampSetCursorMode(st and 4 or 0) -- блокировка движения мышки (4 заблок, 0 разблок)
        end
    end
end
function onWindowMessage(msg, wparam, lparam)
    if st then -- если сост активно, то
        if sampIsDialogActive() then -- проверка на открытый диалог
            if wparam == 27 or wparam == 13 then -- если нажат екс или ентер, то
                consumeWindowMessage(true, false)
            end
        end
    end
end
мышка не двигается но в диалоге курсор есть и он двигается что делать?
 

chapo

tg/inst: @moujeek
Всефорумный модератор
9,097
12,129
Вот пример блокировки всех клавиш. К сожалению, "блокировка" не распространяется на самп, то есть не будут заблокированы G. Tab, T, F6, Enter в диалогах и т.д.
Lua:
local blockKeyboard = true;

addEventHandler('onWindowMessage', function(msg, param1, param2)
    if (msg == 0x0100 and blockKeyboard) then
        consumeWindowMessage(true, true);
    end
end)
 

ппаааа

Потрачен
Автор темы
85
27
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Вот пример блокировки всех клавиш. К сожалению, "блокировка" не распространяется на самп, то есть не будут заблокированы G. Tab, T, F6, Enter в диалогах и т.д.
Lua:
local blockKeyboard = true;

addEventHandler('onWindowMessage', function(msg, param1, param2)
    if (msg == 0x0100 and blockKeyboard) then
        consumeWindowMessage(true, true);
    end
end)
брат как сделать чтоб блокировался курсор в диалоге, так он блокируется а в диалоге нет. С клавишами мне уже помогли все работает Esc и enter не работает в диалоге как курсор сделать чтоб в диалоге не двигался? или вовсе не видно его было в диалоге

Вот пример блокировки всех клавиш. К сожалению, "блокировка" не распространяется на самп, то есть не будут заблокированы G. Tab, T, F6, Enter в диалогах и т.д.
Lua:
local blockKeyboard = true;

addEventHandler('onWindowMessage', function(msg, param1, param2)
    if (msg == 0x0100 and blockKeyboard) then
        consumeWindowMessage(true, true);
    end
end)
ну или как можно убрать одну кнопку из диалога
 

ппаааа

Потрачен
Автор темы
85
27
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Вот пример блокировки всех клавиш. К сожалению, "блокировка" не распространяется на самп, то есть не будут заблокированы G. Tab, T, F6, Enter в диалогах и т.д.
Lua:
local blockKeyboard = true;

addEventHandler('onWindowMessage', function(msg, param1, param2)
    if (msg == 0x0100 and blockKeyboard) then
        consumeWindowMessage(true, true);
    end
end)
А куда она распостраняется то