|
|
|
Обшибочка, _+_ |
|
|
Levo222 |
8.7.2019, 19:07
|
Journeyman
Сообщений: 399
Регистрация: 18.11.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.689
|
Цитата(DarkMaster @ 8.7.2019, 13:26) Оффициально заявлено разрабами луа, что не лишняя и ошибкой не является. Обязательной так же не является. Сделано специально для удобства.
Там проблема какая-то с координатами Цитата(Levo222 @ 7.7.2019, 2:58) Проблема была в настройках отображения координат курсора, когда стоит галочка почему-то скрипт вылетает вместе с пилотом.
По всей видимости они недоработаны для отображения в работающем скрипте, а только на этапе написания. Можете проверить [отображать относительные координаты курсора - запустить скрипт - остановить скрипт - пилот закрывается] = Еще такая загвоздка, теперь хочу сюда и клики мыши прописать, чтобы при их нажатии прекращался спам. Т.е. у меня стоит send217('{' .. button2[i] .. '}') Код local pause = function() for i = 1, #button2 do -- проверяем не нажата ли клавиша local state=GetKeyState(button2[i]) local toggle = GetKeyState(0x91) -- (Scroll_Lock) while state and toggle do -- ждать пока клавиша нажата local toggle = GetKeyState(0x91) -- (Scroll_Lock) log("Нажата клавиша с кодом: " .. button2[i]) send217('{' .. button2[i] .. '}') wait (10) state=GetKeyState(button2[i]) end end end Вписал я чтобы они нажимались только при включенном Scroll/Caps например, и коды кнопок мыши в Button2. А сами то нажатия отправляются left/right, как добавить в ту же функции паузы еще и клики мышью чтобы не было ошибки? Написал с дополнительными локалами и маусами: -
Код local button2 = {0x31, 0x52, 0x33, 0x43, 0x56, 0x35, 0x35, 0x35, 0x5A, 0x42, 0x32, 0x46, 0x58, 0x48, 0x47, 0xC0, 0x34, 0x04, 0x54} local mouse1 = {0x01} local mouse2 = {0x02} for i = 1, #button do button[i][3] = os.clock() + button[i][2] end
local pause = function() for i = 1, #button2 or #mouse1 or #mouse2 do -- проверяем не нажата ли клавиша local state=GetKeyState(button2[i]) local mouse1=GetKeyState(mouse1[i]) local mouse2=GetKeyState(mouse2[i]) local toggle = GetKeyState(0x91) -- (Scroll_Lock) while (state or mouse1 or mouse2) and toggle do -- ждать пока клавиша нажата local toggle = GetKeyState(0x91) -- (Scroll_Lock) log("Нажата клавиша с кодом: " .. button2[i]) if state then send217('{' .. button2[i] .. '}') wait(0) else if mouse1 then left(mouse_pos() --Нажатия левой wait(0) else if mouse2 then right(mouse_pos() wait(1) else end end end wait (10) state=GetKeyState(button2[i]) mouse1=GetKeyState(mouse1[i]) mouse2=GetKeyState(mouse2[i]) end end end
Но оно не работает естественно)
|
|
|
|
cirus |
9.7.2019, 1:44
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26691
Пользователь №: 16.971
Возраст: 29
|
Цитата Но оно не работает естественно) Потому что куча ошибок. Цитата добавить в ту же функции паузы еще и клики мышью чтобы не было ошибки? Для начала сделать чтобы клавиши нажимались, а потом что-то добавлять. Цитата local button2 Цитата for i = 1, #button do button[i][3] = os.clock() + button[i][2] Объявлен массив button2, а в цикле узнаёте размер массива button. Объявлен одномерный массив, а обращение к двухмерному. Цитата for i = 1, #button2 or #mouse1 or #mouse2 do Что за бред. Цитата local state=GetKeyState(button2[i]) local mouse1=GetKeyState(mouse1[i]) Обращение через переменную i, при том что размеры массивов разные, Допустим i = 3, mouse1[3] вообще не существует, т. к. в массиве 1 элемент. Цитата left(mouse_pos() 2 открывающих скобки и только 1 закрывающая.
|
|
|
|
Levo222 |
9.7.2019, 7:18
|
Journeyman
Сообщений: 399
Регистрация: 18.11.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.689
|
Цитата(cirus @ 9.7.2019, 5:44) Для начала сделать чтобы клавиши нажимались, а потом что-то добавлять.
Так, они нажимаются, кроме мыши. Цитата(cirus @ 9.7.2019, 5:44) Объявлен массив button2, а в цикле узнаёте размер массива button.
Ок. Так работало же? В первом цикле я обращаюсь к одномерному массиву, а в функции паузы к двумерному, не? Там просто я вначале не написал Код local button = { {"f1",0.3}, {"f2",0.4} } у меня в скрипте есть, не думал что это нужно писать. Цитата(cirus @ 9.7.2019, 5:44) Обращение через переменную i, при том что размеры массивов разные, Допустим i = 3, mouse1[3] вообще не существует, т. к. в массиве 1 элемент. Так что нужно сделать?
|
|
|
|
Levo222 |
9.7.2019, 14:48
|
Journeyman
Сообщений: 399
Регистрация: 18.11.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.689
|
Цитата(cirus @ 9.7.2019, 15:13) Для начала выложить работающий код, который нажимает клавиши.
-
Код --lua do local back = package.path package.path = "luaPlugins\\winapi\\?.lua;"..package.path setfenv(1, require'winapi') require[[winapi.keyboard]] package.path = back end
local button = { {"f1",0.3}, --Интервал в секундах {"f2",0.4}, {"f3",0.5} } local button2 = {0x31, 0x52, 0x33, 0x43, 0x56, 0x35, 0x35, 0x35, 0x5A, 0x42, 0x32, 0x46, 0x58, 0x48, 0x47, 0xC0, 0x34}
for i = 1, #button do button[i][3] = os.clock() + button[i][2] end
local pause = function() for i = 1, #button2 do -- проверяем не нажата ли клавиша local state=GetKeyState(button2[i]) while state do -- ждать пока клавиша нажата log("Нажата клавиша с кодом: " .. button2[i]) send217('{' .. button2[i] .. '}') wait (10) state=GetKeyState(button2[i]) end end end local main = function(button) for i = 1, #button do pause() -- вызов функции, которая проверяет нажатие клавиш if button[i][3] < os.clock() then send217(button[i][1]) button[i][3] = os.clock() + button[i][2] end end end
while 1 do main(button) wait (1) end
|
|
|
|
Levo222 |
11.7.2019, 18:26
|
Journeyman
Сообщений: 399
Регистрация: 18.11.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.689
|
Цитата(cirus @ 10.7.2019, 5:31) Добавить ещё одну функцию, которая будет проверять нажатия кнопок мыши.
Ну к примеру Я пишу Код --lua do local back = package.path package.path = "luaPlugins\\winapi\\?.lua;"..package.path setfenv(1, require'winapi') require[[winapi.keyboard]] package.path = back end
local button = { {"f1",0.06}, --Интервал в секундах {"f2",0.09} } local button2 = {0x31, 0x52, 0x33, 0x43, 0x56, 0x35, 0x35, 0x35, 0x5A, 0x42, 0x32, 0x46, 0x58, 0x48, 0x47, 0xC0, 0x34, 0x04, 0x54} -- клаивиши, которые прерывают отправку клавиш из таблицы button local mouse1 = {0x01} --local mouse2 = {0x02} for i = 1, #button do button[i][3] = os.clock() + button[i][2] end local pause = function() --local pause3 = function() for i = 1, #button do -- проверяем не нажата ли клавиша local state=GetKeyState(button2[i]) --local mouse1=GetKeyState(mouse1[i]) --local mouse2=GetKeyState(mouse2[i]) --local toggle = GetKeyState(0x91) -- (Scroll_Lock) while state do -- ждать пока клавиша нажата --local toggle = GetKeyState(0x91) -- (Scroll_Lock) log("Нажата клавиша: " .. button2[i]) send217('{' .. button2[i] .. '}') wait(1) -- right(mouse_pos(('{' .. button2[i] .. '}'))) wait (10) state=GetKeyState(button2[i]) --mouse1=GetKeyState(mouse1[i]) -- тут статус мыши не определяем? --mouse2=GetKeyState(mouse2[i]) end end end local main = function(button) --Вот тут интересно, если я еще одну паузу сюда воткну, наверняка не будет работать? У нас была функция майн для button. Теперь нужно вторую для mouse? Или эта потянет? local pause2 = function() for i = 1, #mouse1 do -- проверяем не нажата ли мышь local mouse1=GetKeyState(mouse1[i]) -- наверно i нужно другую присваивать? чет я всё в одну кучу слепил... --local toggle = GetKeyState(0x91) -- (Scroll_Lock) while mouse1 do -- ждать пока мышь1 нажата --local toggle = GetKeyState(0x91) -- (Scroll_Lock) log("Нажата клавиша: " .. mouse1[i]) left(mouse_pos(('{' .. mouse1[i] .. '}'))) wait(1) -- right(mouse_pos(('{' .. button2[i] .. '}'))) wait (10) state1=GetKeyState(mouse1[i]) -- ну тут мы типо статус мыши получаем --mouse1=GetKeyState(mouse1[i]) --mouse2=GetKeyState(mouse2[i]) end end end local main2 = function(mouse1) -- допустим я main2 создал, но её ведь не существует? она же базовая функция? for i = 1, #button do pause() -- вызов функции, которая проверяет нажатие клавиш pause2() -- и еще одну паузу, пусть еще проверяет, так скрипт точно зависнет))) if button[i][3] < os.clock() then send217(button[i][1]) button[i][3] = os.clock() + button[i][2] end end end
while 1 do main(button) wait (1) end
|
|
|
|
cirus |
12.7.2019, 2:12
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26691
Пользователь №: 16.971
Возраст: 29
|
Разбирайтесь. код
Код --lua do local back = package.path package.path = "luaPlugins\\winapi\\?.lua;"..package.path setfenv(1, require'winapi') require[[winapi.keyboard]] package.path = back end
local button = { {"f1",0.3}, --Интервал в секундах {"f2",0.4}, {"f3",0.5} } local button2 = {0x31, 0x52, 0x33, 0x43, 0x56, 0x35, 0x35, 0x35, 0x5A, 0x42, 0x32, 0x46, 0x58, 0x48, 0x47, 0xC0, 0x34} local mouse1= {1, 2}
for i = 1, #button do button[i][3] = os.clock() + button[i][2] end
local pause = function() for i = 1, #button2 do -- проверяем не нажата ли клавиша local state=GetKeyState(button2[i]) while state do -- ждать пока клавиша нажата log("Нажата клавиша с кодом: " .. button2[i]) send217('{' .. button2[i] .. '}') wait (10) state=GetKeyState(button2[i]) end end end
local mouse_pause = function() for i = 1, #mouse1 do -- проверяем не нажата ли клавиша мыши local state=GetKeyState(mouse1[i]) while state do -- ждать пока клавиша нажата log("Нажата клавиша с кодом: " .. mouse1[i]) -- тут left или что нужно wait (10) state=GetKeyState(mouse1[i]) end end end
local main = function(button) for i = 1, #button do pause() -- вызов функции, которая проверяет нажатие клавиш клавиатуры mouse_pause() -- вызов функции, которая проверяет нажатие клавиш мыши if button[i][3] < os.clock() then send217(button[i][1]) button[i][3] = os.clock() + button[i][2] end end end
while 1 do main(button) wait (1) end
|
|
|
|
Levo222 |
12.7.2019, 6:59
|
Journeyman
Сообщений: 399
Регистрация: 18.11.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.689
|
Цитата(cirus @ 12.7.2019, 6:12) Разбирайтесь. код
Код --lua do local back = package.path package.path = "luaPlugins\\winapi\\?.lua;"..package.path setfenv(1, require'winapi') require[[winapi.keyboard]] package.path = back end
local button = { {"f1",0.3}, --Интервал в секундах {"f2",0.4}, {"f3",0.5} } local button2 = {0x31, 0x52, 0x33, 0x43, 0x56, 0x35, 0x35, 0x35, 0x5A, 0x42, 0x32, 0x46, 0x58, 0x48, 0x47, 0xC0, 0x34} local mouse1= {1, 2} for i = 1, #button do button[i][3] = os.clock() + button[i][2] end
local pause = function() for i = 1, #button2 do -- проверяем не нажата ли клавиша local state=GetKeyState(button2[i]) while state do -- ждать пока клавиша нажата log("Нажата клавиша с кодом: " .. button2[i]) send217('{' .. button2[i] .. '}') wait (10) state=GetKeyState(button2[i]) end end end
local mouse_pause = function() for i = 1, #mouse1 do -- проверяем не нажата ли клавиша мыши local state=GetKeyState(mouse1[i]) while state do -- ждать пока клавиша нажата log("Нажата клавиша с кодом: " .. mouse1[i]) // тут left или что нужно wait (10) state=GetKeyState(mouse1[i]) end end end
local main = function(button) for i = 1, #button do pause() -- вызов функции, которая проверяет нажатие клавиш клавиатуры mouse_pause() -- вызов функции, которая проверяет нажатие клавиш мыши if button[i][3] < os.clock() then send217(button[i][1]) button[i][3] = os.clock() + button[i][2] end end end
while 1 do main(button) wait (1) end Неработает left в таком случае. Код local mouse_pause = function() for i = 1, #mouse1 do -- проверяем не нажата ли клавиша мыши local state=GetKeyState(mouse1[i]) while state do -- ждать пока клавиша нажата log("Нажата клавиша с кодом: " .. mouse1[i]) if state=1 then local x, y = mouse_pos () left (x, y) // тут left или что нужно else if state=2 then local x, y = mouse_pos () right (x, y) else end end wait (10) state=GetKeyState(mouse1[i]) end end end
|
|
|
|
Levo222 |
12.7.2019, 18:03
|
Journeyman
Сообщений: 399
Регистрация: 18.11.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.689
|
Цитата(cirus @ 12.7.2019, 14:54) В луа вместо = используется ==. Код if i == 1 then log("Нажата левая кнопка мыши") end
-- .
................ .
Еще одна проблема,!
|
|
|
|
Levo222 |
26.7.2019, 8:07
|
Journeyman
Сообщений: 399
Регистрация: 18.11.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.689
|
Цитата(cirus @ 12.7.2019, 6:12) Разбирайтесь. код
Код --lua do local back = package.path package.path = "luaPlugins\\winapi\\?.lua;"..package.path setfenv(1, require'winapi') require[[winapi.keyboard]] package.path = back end
local button = { {"f1",0.3}, --Интервал в секундах {"f2",0.4}, {"f3",0.5} } local button2 = {0x31, 0x52, 0x33, 0x43, 0x56, 0x35, 0x35, 0x35, 0x5A, 0x42, 0x32, 0x46, 0x58, 0x48, 0x47, 0xC0, 0x34} local mouse1= {1, 2} for i = 1, #button do button[i][3] = os.clock() + button[i][2] end
local pause = function() for i = 1, #button2 do -- проверяем не нажата ли клавиша local state=GetKeyState(button2[i]) while state do -- ждать пока клавиша нажата log("Нажата клавиша с кодом: " .. button2[i]) send217('{' .. button2[i] .. '}') wait (10) state=GetKeyState(button2[i]) end end end
local mouse_pause = function() for i = 1, #mouse1 do -- проверяем не нажата ли клавиша мыши local state=GetKeyState(mouse1[i]) while state do -- ждать пока клавиша нажата log("Нажата клавиша с кодом: " .. mouse1[i]) // тут left или что нужно wait (10) state=GetKeyState(mouse1[i]) end end end
local main = function(button) for i = 1, #button do pause() -- вызов функции, которая проверяет нажатие клавиш клавиатуры mouse_pause() -- вызов функции, которая проверяет нажатие клавиш мыши if button[i][3] < os.clock() then send217(button[i][1]) button[i][3] = os.clock() + button[i][2] end end end
while 1 do main(button) wait (1) end Ищё одна загвоздка! Средняя кнопка мыши не работает теперь. Как её сюда вписать? Если пишу local mouse1= {1, 2, 3} -- соответственно это не работает if i == 3 then local x, y = mouse_pos () log("Нажата сред кнопка мыши") middle (mouse_pos(('{' .. mouse1[i] .. '}'))) end добавляю в паузу мыши, но она так как 2 первые кнопки не работает, пробовал в общие клавиши через код 0x04 добавлять но также не работает.
|
|
|
|
Levo222 |
26.7.2019, 10:40
|
Journeyman
Сообщений: 399
Регистрация: 18.11.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.689
|
Цитата(cirus @ 26.7.2019, 14:29) Нет, не работает в логе она показывает, но middle(mouse_pos(('{' .. mouse1[i] .. '}'))) её не нажимает вот здесь допустим она работает Код while 1 do wait (13) local state, toggle = GetKeyState(0x14) local stateLKM = GetKeyState(0x01) local statePKM = GetKeyState(0x02) local state4 = GetKeyState(0x04) if toggle and stateLKM then wait (1) local x, y = mouse_pos () left (x, y) -- клик else if toggle and statePKM then wait (1) local x, y = mouse_pos () right (x, y) -- клик else if toggle and state4 then wait (1) local x, y = mouse_pos () middle (x, y) else end end end end
а в таком варианте: Код local mouse1 = {1, 2, 4} local mouse_pause = function() local state1, toggle = GetKeyState(0x90) for i = 1, #mouse1 do local state2=GetKeyState(mouse1[i]) while state2 do local state1, toggle = GetKeyState(0x90) -- (Num_Lock) if toggle then log("Нажата клавиша с кодом: " .. mouse1[i]) local x, y = mouse_pos () if i == 1 then local x, y = mouse_pos () left(mouse_pos(('{' .. mouse1[i] .. '}'))) end if i == 2 then local x, y = mouse_pos () right(mouse_pos(('{' .. mouse1[i] .. '}'))) end if i == 4 then local x, y = mouse_pos () middle(mouse_pos(('{' .. mouse1[i] .. '}'))) end end wait (10) state2=GetKeyState(mouse1[i]) end end end
нет
|
|
|
|
Levo222 |
26.7.2019, 11:56
|
Journeyman
Сообщений: 399
Регистрация: 18.11.2017 Группа: Пользователи Наличность: 0
Пользователь №: 18.689
|
Цитата(cirus @ 26.7.2019, 15:53) В данном случае никакого.
Дак почему средняя то не работает? даже при таком local x, y = mouse_pos () middle (x, y) варианте конкретно вот в этом скрипте. В других работает )_______ Эм, проблема не в клавише. А в том что цифра 4 как-то не так считыватеся. Даже подставляя туда другую клавишу она не работает А подставляя middle в другие цифры она работает короче 4 не работает _____ + ко всему такой скрипт, если долго не включена лампочка на toggle начинает пролагивать окно к которому привязан, где то я его лишний раз написал, или не дописал, вобщем чет- не пойму
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|