Здравствуйте, гость ( Вход | Регистрация )

2 страниц V < 1 2  
Ответить в эту темуОткрыть новую тему
> Обшибочка, _+_
Levo222
сообщение 8.7.2019, 19:07
Сообщение #21


****

Apprentice
Сообщений: 171
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 41
Пользователь №: 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

Но оно не работает естественно)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 9.7.2019, 1:44
Сообщение #22


**********

Elder
Сообщений: 2.592
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 15949
Пользователь №: 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 закрывающая.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 9.7.2019, 7:18
Сообщение #23


****

Apprentice
Сообщений: 171
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 41
Пользователь №: 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 элемент.


Так что нужно сделать?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 9.7.2019, 11:13
Сообщение #24


**********

Elder
Сообщений: 2.592
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 15949
Пользователь №: 16.971
Возраст: 29



Цитата
Так что нужно сделать?

Для начала выложить работающий код, который нажимает клавиши.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 9.7.2019, 14:48
Сообщение #25


****

Apprentice
Сообщений: 171
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 41
Пользователь №: 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
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 10.7.2019, 1:31
Сообщение #26


**********

Elder
Сообщений: 2.592
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 15949
Пользователь №: 16.971
Возраст: 29



Цитата
Так что нужно сделать?

Добавить ещё одну функцию, которая будет проверять нажатия кнопок мыши.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 11.7.2019, 18:26
Сообщение #27


****

Apprentice
Сообщений: 171
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 41
Пользователь №: 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

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 12.7.2019, 2:12
Сообщение #28


**********

Elder
Сообщений: 2.592
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 15949
Пользователь №: 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
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 12.7.2019, 6:59
Сообщение #29


****

Apprentice
Сообщений: 171
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 41
Пользователь №: 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
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 12.7.2019, 10:54
Сообщение #30


**********

Elder
Сообщений: 2.592
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 15949
Пользователь №: 16.971
Возраст: 29



Цитата
Неработает left в таком случае.

В луа вместо = используется ==.
Код
local mouse_pause = function()
    for i = 1, #mouse1 do   -- проверяем не нажата ли клавиша мыши
        local state=GetKeyState(mouse1[i])
        while  state do   -- ждать пока клавиша нажата
            -- тут left или что нужно
            if i == 1 then
                log("Нажата левая кнопка мыши")
            end
            if i == 2 then
                log("Нажата правая кнопка мыши")
            end
            wait (10)
            state=GetKeyState(mouse1[i])
        end
    end
end
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Levo222
сообщение 12.7.2019, 18:03
Сообщение #31


****

Apprentice
Сообщений: 171
Регистрация: 18.11.2017
Группа: Пользователи
Наличность: 41
Пользователь №: 18.689



Цитата(cirus @ 12.7.2019, 14:54) *

В луа вместо = используется ==.
Код

            if i == 1 then
                log("Нажата левая кнопка мыши")
            end
            


Ок
.
Код
--lua
...


--

.
Код

--Ок
    

Ладно, вроде бы сделал
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

2 страниц V < 1 2
Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 16.7.2019, 17:08
Designed by Nickostyle