setGameKeyState(int key, int state)
int key - айди клавиши. хранятся в файлике по пути moonloader/lib/game/keys.lua. вписываются туда кнопки, которые ты шлёшь в синхре: leftright, updown, keys. не путать с виртуальными клавишами
int state - состояние клавиши. у каждой клавиши уникальное состояние в виде числа. значение берётся из синхры. чтобы узнать значение состояния клавиш по типу пробела, энтера, альта нужно выводить поле keysData, для стрелок или wasd нужны leftRight, upDown соответственно.
Если зажаты несколько клавиш, их значение состояния суммируется. Некоторые клавиши, такие как Y хранятся в поле weapon.
https://sampwiki.blast.hk/wiki/KeysЧтобы заставить её тормозить, впиши в аргументы айди клавиши вниз и её значение из синхронизации.
сервер воспринимает значение 64 в поле weapon onfoot/incar пакета синхронизации как нажатую клавишу Y. можно модифицировать пакет перед отправкой, устанавливая нужное значение, либо использовать функцию выдачи оружия, но этот метод менее предпочтительныйКак установить клавие Y состояние нажатия, а после состояние отжатия
А что за поле, где оно находится? Как туда что-то передать, какую функцию для этого использовать? Почему 64, откуда ты берешь эти цифры? Я хотел бы разобраться.сервер воспринимает значение 64 в поле weapon onfoot/incar пакета синхронизации как нажатую клавишу Y. можно модифицировать пакет перед отправкой, устанавливая нужное значение, либо использовать функцию выдачи оружия, но этот метод менее предпочтительный
Кнопки для пакета сампа - опытным путем через вывод данныз пакета.А что за поле, где оно находится? Как туда что-то передать, какую функцию для этого использовать? Почему 64, откуда ты берешь эти цифры? Я хотел бы разобраться.
А что за поле, где оно находится? Как туда что-то передать, какую функцию для этого использовать? Почему 64, откуда ты берешь эти цифры? Я хотел бы разобраться.
local sampev = require 'lib.samp.events' -- подключение библиотеки для работы с rpc/пакетами синхронизации
function sampev.onSendPlayerSync(data) -- событие отправки onfoot пакетов синхронизации
-- вывод информации
print(data.keysData) -- вывод функциональных кнопок (кроме стрелок и WASD), для нажатого Y значение было 0.
-- зная, что помимо этого поля клавиши могут считываться через поле weapon, я вывел его
print(data.weapon) -- при нажатом Y значение изменяется на 64
--- модернизация пакета
data.weapon = 64 -- изменяем значение поля
-- далее это значение будет применяться для каждого последующего отправленного пакета синхронизации
-- поэтому рекомендуется сделать условие, при котором данное значение будет изменяться, это уже на твое усмотрение
end
Шаман скинул же бляблет вот вы всё это понаписали, хоть бы один пример показали, как этот гребанный Y то нажать по итогу
setGameKeyState(6, 128)
разумеется в цикле каком-то временном, потому что нажатие игровой клавиши вызывает один раз без зажатия.ничего он конкретного не скинул. Я вот скинул - setGameKeyState(11, 64) - нажатие Y. Всё. Больше ничего не требуется.Шаман скинул же бля
А если пкм или лкм? То какое значение?ничего он конкретного не скинул. Я вот скинул - setGameKeyState(11, 64) - нажатие Y. Всё. Больше ничего не требуется.