UoKit.com Форумы > Кликер > UO Pilot > Плагины и доп. ПО
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14
cirus
Цитата
А вот в ручную все же можно повесить порт или пилота - частым запуском

Тут и стараться не надо. Остановка скрипта при открытом порте и после этого потребуется перезапуск пилота.

Можно ещё длл попробовать, но в скорее всего ничего не изменится, т. к. в ней тот же самый код.
Нажмите для просмотра прикрепленного файла
Архив распаковать и закинуть в папку с пилотом. Тестил только на win10.
Пример использования:
код
Код
--lua
local ffi = require("ffi")
log 'clear' log 'mode compact'
local hw = ffi.load('Arduino.dll')

ffi.cdef[[
    int get_port(int VID, int PID);
    int set_port(int com);
    int set_delay_mouse(int ms);
    int set_delay_mousemove(int ms);
    int set_offset_mousemove(int step);
    int set_random_delay_mouse(int rand);
    int mouse_move(int x, int y);
]]

local com = hw.get_port(2341, 8036)
hint('Номер порта: ' .. tostring(com))
if com < 1 then -- если номер порта меньше 1
log ('error = ' .. tostring(com)) -- код ошибки, если 0 значит устройство с указанными vip и pid не найдено
end_script ()
end

hw.set_port(com)
hw.set_delay_mouse (20) -- установить паузу между нажатиями клавиш мыши
hw.set_random_delay_mouse(10) -- установить рандом между нажатиями клавиш мыши от 0 до 9 мсек
hw.set_offset_mousemove(4) -- шаг перемещения курсора, чем больше тем быстрее перемещается
hw.set_delay_mousemove(2) -- установить паузу между каждый шагом перемещения мыши, чем меньше, тем быстрее перемещается

hw.mouse_move (651, 225) -- переместить мышь

Вверх
KotMC
Цитата(cirus @ 18.1.2021, 13:16)

KotMC, этот файл в папку с пилотом закиньте Нажмите для просмотра прикрепленного файла


Этот модуль можно использовать вместо , модуля из шапки?
Список функций для него не меняется?

Зависания пилота происходили скорее всего из-за ноутбука. На двух из трех usb портов работает с рандомными завываниями, на одном более менее стабильно. Проверил на других компьютерах - пилот, модуль, ардуино, скрипт работаю нормально.


Вверх
cirus
Цитата
Этот модуль можно использовать вместо , модуля из шапки?

Можно. И не только в пилоте, а любой другой программе, которая может подключать библиотеки.
Цитата
Список функций для него не меняется?

Вызов некоторых функций отличается.
Список функций Arduino.dll
Код
--lua
local ffi = require("ffi")
local hw = ffi.load('Arduino.dll')

ffi.cdef[[
    int get_port (int vid, int pid);
    int set_port (int COMport);
    int set_delay_key (int ms);
    int set_delay_mouse (int ms);
    int set_delay_mousemove(int ms);
    int set_offset_mousemove(int step);
    int set_random_delay_key(int rand);
    int set_random_delay_mouse(int rand);

    int key (int code);
    int key_down (int code);
    int key_up (int code);
    int text (const char* text);

    int mouse_move (int x, int y);
    int mouse_click (int button);
    int mouse_click_dbl (int button);
    int mouse_left (int x, int y);
    int mouse_right (int x, int y);
    int mouse_middle (int x, int y);

    int mouse_left_dbl (int x, int y);
    int mouse_right_dbl (int x, int y);
    int mouse_middle_dbl (int x, int y);

    int mouse_left_down (int x, int y);
    int mouse_right_down (int x, int y);
    int mouse_middle_down (int x, int y);

    int mouse_left_up (int x, int y);
    int mouse_right_up (int x, int y);
    int mouse_middle_up (int x, int y);

    int mouse_drag_left (int x, int y, int x2, int y2);
    int mouse_drag_right (int x, int y, int x2, int y2);

    int mouse_wheel_up (int x, int y, int count);
    int mouse_wheel_down (int x, int y, int count);
]]

Т. е. вместо hw.mouse.move (651, 225) надо hw.mouse_move (651, 225).
Вверх
KotMC
Про Arduino.dll понятно, а модуль Arduino.lua из "сообщения 17", чем отличается от модуля из шапки?
Только выводом информации в лог об открытии закрытии порта или еще чем-то?
Его тоже можно использовать?
Вверх
cirus
Цитата
а модуль Arduino.lua из "сообщения 17", чем отличается от модуля из шапки?

Только вывод в лог добавлен.
Вверх
kyja
Подскажите пожалуйста как можно решить проблему крайне медленной работы на vmware workstation 16?
Фактически все работает но время выполнения просто огромное, на virtualbox такой проблемы нету вообще там все как на обычном пк все отрабатывает согласно задержкам
Вверх
kyja
Цитата(kyja @ 28.1.2021, 1:32)

Подскажите пожалуйста как можно решить проблему крайне медленной работы на vmware workstation 16?
Фактически все работает но время выполнения просто огромное, на virtualbox такой проблемы нету вообще там все как на обычном пк все отрабатывает согласно задержкам

Если кому то интересно то для vmware это решилось с помощью USB over Network офсайт но так же она есть на торентах (странно конечно что родное подключение от vmware работает хуже чем стороний софт при по сути одинаковой логике проброса юсб у обоих через tcp/ip если не ошибаюсь) возможно это глюк именно для arduino потому что если замерить скорость флешки через CrystalDiskMark то разница у хоста и виртаулки будет всего 5-15% но проброшенный arduino работает в ~500 раз медленней чем на хосте

И еще вопрос вомзожно ли подключатся не через
Код
hw.com = hw.get_port (2341, 8036)    -- указать vid и pid ардуино

vid и pid а через например номер com порта?
у них ведь у всех он одинаков и если запустить несколько пилотов он ведь не поймет к какому именно устройству надо подсоединятся


Код
--lua
require"luaposh";hw=require"arduino";log"clear"

hw.com = PScode('R',{[[$Return=Get-ArduinoPort]]})
if type(hw.com) ~= "number" then
    log("ERROR\n"..hw.com)
    end_script()
end

hw.mouse.move(400, 200)

Или это и есть способ подключатся именно к определенному com порту? (у меня не получилось)
Вверх
cirus
Цитата
вомзожно ли подключатся не через
hw.com = hw.get_port (2341, 8036) -- указать vid и pid ардуино
vid и pid а через например номер com порта?

Код
hw.com = 3  -- 3й порт

Вверх
kyja
Цитата(cirus @ 1.2.2021, 1:42)

Код
hw.com = 3  -- 3й порт


Большое спасибо
Вверх
kyja
Подскажите а как используя Arduino.dll
отправить нажатие кнопок
Код
hw.key (hw.enter)   -- нажать 'Enter'
hw.text ('Hello Привет')  -- напечатать текст
hw.key ('V')    -- нажать Shift+'v'

Enter получилось так
Код
hw.key (0xB0) 

а вот обычные буквы вообще не понял
Вверх
Invision Power Board © 2001-2024 Invision Power Services, Inc.
Version for Pocket PC © 2006-2024, IPBest Studio.