Для входа на форум нажмите здесь

Вернуться   GoHa.Ru > Форумы > ММО Игры > LINEAGE 2 > Технический раздел

Ответ
 
Опции темы
Старый 05.12.2015, 14:45   #1 
Translate_renamed_781891_01122020 Translate_renamed_781891_01122020 вне форума
Маньяк
 
Аватар для Translate_renamed_781891_01122020

Info
Сообщений: 721
Всего лайков: 19
Регистрация: 28.11.2010
Девайсы Logitech и Скрипты Lua

В этом посте собираюсь собрать ссылки и готовые функции
по работе скриптов Lua с девайсами от Logitech.

Работа на других девайсах, даже если они
поддерживают Lua, может отличаться.

Это тема не будет затрагивать написание ботов (эмуляция
присутствия игрока в игре на многих проектах карается
бессрочным баном)

Основы

G-series Lua API

Работа с Lua
Разработчики девайсов ограничивают функционал Lua, но вы
можете посмотреть работу циклов, условий, вид переменных
и пр.



SDK

Удобный запуск функций МАСТХЭВ
Делаем удобней написание скриптов (советую первым делом,
после подключения своего нового девайса, удалить все
содержимое и вставить этот код)


Перемещение курсора через MoveMouseRelative на любое расстояние

Можно выставлять скорость и задержку(стандартная функция
позволяет переместить курсор только от 127 до -127 пикселей). Фрост блокирует
обычное перемещение, но оставляет
относительное, геймгуард блокирует любые.


Polling in Lua
Lua однопоточный язык программирования, но если вам
необходим долгий сценарий с возможностью прерываний
без ручных точек выхода, то можете использовать этот SDK



///Logitech сделали новую совершенно неудобную базу знаний, все ссылки потерены. Внутренним поиском не находит, ждем нормальную индексацию гуглом


Готовые функции

Все протестировано.
(мой род деятельности далек от программирования,
поэтому на идеальную чистоту кода не претендую)


Код:
while not IsModifierPressed("shift")  do
            OutputLogMessage("A \n")
            Sleep (500)

            if IsModifierPressed("shift") then
                break
            end

            OutputLogMessage("B \n")
            Sleep (500)
            
            if IsModifierPressed("shift") then
                break
            end

            OutputLogMessage("C \n")
            Sleep (500)
            
            if IsModifierPressed("shift") then
                break
            end

            OutputLogMessage("D \n")
            Sleep (500)
        end



Код:
function Tab (WindowNumber)    
            PressKey("rgui")
            Sleep (100)
            PressKey(tostring(WindowNumber))
            OutputLogMessage("Tab okna "..WindowNumber.."\n")
            ReleaseKey(tostring(WindowNumber))
            ReleaseKey("rgui")
            Sleep (300)
    end



У Logitech есть стандартная функция, но из-за пинга и разных мощностей компьютеров ее срабатывание может глючить. А если каждый раз нажатие кнопки расписывать на три строки (Press/Sleep/Release), то это очень захламляет код.

Вы можете самостоятельно протестировать и подобрать нужную задержку
Код:
function hPress(Key)
        PressKey(tostring(Key))
        Sleep (100)
        ReleaseKey(tostring(Key))
end



Знаю, уже не актуально, но можете переделать под заходку в любой инстанс.

Работает, пока горит капс. Задержки выставляются в зависимости от пинга.

Требования:
  1. подключена функция hPress
  2. NPC взят в таргет на F1 назначена атака.
  3. Курсор наведен на Первую строку входа.
Код:
function kartia95()
    while IsKeyLockOn("capslock") do
        PressKey("lshift")
        PressMouseButton(1)
        ReleaseMouseButton(1)
        Sleep(1000)
        MoveMouseRelative( 0, 105)
        PressMouseButton(1)
        ReleaseMouseButton(1)
        Sleep(1000)
        MoveMouseRelative( 0, -105)
        hPress("F1")
        Sleep(1000)
        ReleaseKey("lshift")
    end
end


Пост будет обновляться
__________________
x37

Последний раз редактировалось Translate_renamed_781891_01122020; 21.01.2017 в 19:03.
4 пользователя оценили это сообщение: Показать
  Ответить с цитированием
Старый 29.12.2015, 23:15   #2 
Maiar Maiar вне форума
А я томат
 
Аватар для Maiar

Info
Отправить сообщение для Maiar с помощью ICQ
Танк 20 лет вместе!
Награжден за: 20 лет вместе! Просветитель
Награжден за: За вклад в развитие раздела Lineage II
Re: Девайсы Logitech и Скрипты Lua

Поднял в важные, отличный материал
__________________
  Ответить с цитированием
Старый 30.12.2015, 11:22   #3 
CatTT CatTT вне форума
Claycat
 
Аватар для CatTT

Info
Сообщений: 8,228
Всего лайков: 59
Регистрация: 08.12.2006
Сервер: Earth
Ник: Smith
Отправить сообщение для CatTT с помощью ICQ
GoHa.Ru - 10 лет Космос Победитель конкурса
Награжден за: За победу в конкурсе «Исследование Андромеды» по Mass Effect: Andromeda
Re: Девайсы Logitech и Скрипты Lua

угу, респект человеку за труды
__________________
Чтобы оставаться богатым- иногда нужно грабить (с)
Зачем Вам знать как устроены часы? Просто иногда поглядывайте на время(с)
У каждого из нас есть своя цена. Даже для того, что Вы не собирались продавать (с)
Ashran... Как много в этом звуке для сердца Horde`ского слилось! Как много в нём отозвалось!
  Ответить с цитированием
Старый 08.04.2017, 17:15   #4 
Translate_renamed_781891_01122020 Translate_renamed_781891_01122020 вне форума
Маньяк
 
Аватар для Translate_renamed_781891_01122020

Info
Сообщений: 721
Всего лайков: 19
Регистрация: 28.11.2010
Re: Девайсы Logitech и Скрипты Lua

Было чуть времени, решил написать скрипт бегущей строки.
От лагов лучше выключить чат с enter и включить таб группового чата.



Код:
function RunWord ()
    x1 = "PVP Kamni Dorogo"
    x_len=string.len(x1)
    for i=0, x_len do
        x2 =string.sub(x1,x_len-i+1,x_len)..'     '..string.sub(x1,1,x_len-i..' ')
        Sleep(100)
        PressAndReleaseMouseButton("1");
        Sleep(100)
        PressAndReleaseMouseButton("1");
        Sleep(100)
        for k=1, string.len(x2) do
            xChar=string.sub(x2,k,k)
            if xChar==" " then   
                xChar="spacebar" else
            end 
            PressAndReleaseKey (xChar)
        end
        PressAndReleaseKey ("enter")
    end
end
Код:
function test()
while IsKeyLockOn("capslock") do
RunWord()
end
end
__________________
x37
  Ответить с цитированием
Старый 18.04.2017, 14:29   #5 
-=Scorp=- -=Scorp=- вне форума
Гуру
 
Аватар для -=Scorp=-

Info
Сообщений: 3,340
Всего лайков: 52
Регистрация: 12.12.2007
Игра: не отпускает
Сервер: Pa'agrio
Инфо: Воин Радар Дуба
Re: Девайсы Logitech и Скрипты Lua

Прикольно, но все обычно читают слева - направо, а не наоборот.
__________________
Орк - ломать!
  Ответить с цитированием
Старый 18.04.2017, 16:23   #6 
ExtenZ_MD ExtenZ_MD вне форума
Гуру
 
Аватар для ExtenZ_MD

Info
Сообщений: 4,154
Всего лайков: 118
Регистрация: 14.03.2012
Игра: /offgame
Сервер: /lifer
Танк
Re: Девайсы Logitech и Скрипты Lua

japanesse style
  Ответить с цитированием
Старый 26.06.2017, 14:48   #7 
ВоБлинг!_renamed_628174_09122020 ВоБлинг!_renamed_628174_09122020 вне форума
Читатель
 
Аватар для ВоБлинг!_renamed_628174_09122020

Info
Сообщений: 49
Всего лайков: 0
Регистрация: 10.09.2008
Игра: L2
Сервер: Корякский ПТС
Re: Девайсы Logitech и Скрипты Lua

Цитата:
Сообщение от Translate Посмотреть сообщение
Перемещение курсора через MoveMouseRelative на любое расстояние
Цитата:
Сообщение от Translate Посмотреть сообщение
все ссылки потерены.
Если кому надо, могу сбросить текст процедуры MoveMouseRelative
  Ответить с цитированием
Старый 26.06.2017, 15:11   #8 
ShuShaRA ShuShaRA вне форума
 
Аватар для ShuShaRA

Info
Веселый дембель Заслуженный модератор
Награжден за: Заслуженный модератор технического раздела Lineage 2 GoHa.Ru - Старожил
Re: Девайсы Logitech и Скрипты Lua

Сюда кидай. :)
__________________
Толерантность - болезнь, неспособность организма справляться с внешней заразой.
Фэн-шуй - искусство ухода за могилами предков.
Гламур — представление быдла о красоте.
  Ответить с цитированием
Старый 16.03.2018, 16:32   #9 
Михаил Косолапов_renamed_1365400_09022021 Михаил Косолапов_renamed_1365400_09022021 вне форума
Читатель
 
Аватар для Михаил Косолапов_renamed_1365400_09022021

Info
Сообщений: 1
Всего лайков: 0
Регистрация: 16.03.2018
Re: Девайсы Logitech и Скрипты Lua

Из форума понял что люди тут умные разбираются в языке Lua

Если несложно подскажите, есть такой код я его нашел на форуме

EnablePrimaryMouseButtonEvents(true);
local recoil = false
function OnEvent(event, arg)
if (event == "G_PRESSED" and arg == 4) then
recoil = not recoil
end
if IsMouseButtonPressed(1) and recoil then
while IsMouseButtonPressed(1) do
Sleep(45)
if not IsMouseButtonPressed(1) then break end
MoveMouseRelative(-10,17)
Sleep(95)
if not IsMouseButtonPressed(1) then break end
MoveMouseRelative(0,1)
Sleep(95)
if not IsMouseButtonPressed(1) then break end
ReleaseMouseButton(1)
end
end
end

Этот скрипт работает я еще добавил один блок такой же после последнего оператора end изменил параметры и на включение поставил макрос клавишу 5
Но второй вариант не запускается а если и запускается то только при нажатой правой клавише мыши. Можете подсказать как сделать код работоспособным что бы при нажатии G4 включался один вариант а при нажатии G5 второй вариант

EnablePrimaryMouseButtonEvents(true);
local recoil = false
function OnEvent(event, arg)
if (event == "G_PRESSED" and arg == 4) then
recoil = not recoil
end
if IsMouseButtonPressed(1) and recoil then
while IsMouseButtonPressed(1) do
Sleep(45)
if not IsMouseButtonPressed(1) then break end
MoveMouseRelative(-10,17)
Sleep(95)
if not IsMouseButtonPressed(1) then break end
MoveMouseRelative(0,1)
Sleep(95)
if not IsMouseButtonPressed(1) then break end
ReleaseMouseButton(1)
end
end
EnablePrimaryMouseButtonEvents(true);
local recoil = false
function OnEvent(event, arg)
if (event == "G_PRESSED" and arg == 5) then
recoil = not recoil
end
if IsMouseButtonPressed(1) and recoil then
while IsMouseButtonPressed(1) do
Sleep(35)
if not IsMouseButtonPressed(1) then break end
MoveMouseRelative(0,10)
Sleep(65)
if not IsMouseButtonPressed(1) then break end
MoveMouseRelative(0,1)
Sleep(65)
if not IsMouseButtonPressed(1) then break end
ReleaseMouseButton(1)
end
end
end
  Ответить с цитированием
Старый 16.11.2020, 02:16   #10 
syntasy_renamed_1467499_10112023 syntasy_renamed_1467499_10112023 вне форума
Читатель

Info
Сообщений: 2
Всего лайков: 0
Регистрация: 16.11.2020
Re: Девайсы Logitech и Скрипты Lua

Всем привет..помогите плз написать макрос Lua на проюз скилов в Lineage2 мэйн версии.. к примеру на луке... чтоб юзались сначала Туча Стрел после Скоростной Выстрел после Точечный выстрел...максимально быстро один за одним с повтором...заранее спс)
  Ответить с цитированием
Старый 16.11.2020, 12:51   #11 
ExtenZ_MD ExtenZ_MD вне форума
Гуру
 
Аватар для ExtenZ_MD

Info
Сообщений: 4,154
Всего лайков: 118
Регистрация: 14.03.2012
Игра: /offgame
Сервер: /lifer
Танк
Re: Девайсы Logitech и Скрипты Lua

Тупо макрос внутри-игровой уже не решает проблему?
  Ответить с цитированием
Старый 16.11.2020, 14:16   #12 
syntasy_renamed_1467499_10112023 syntasy_renamed_1467499_10112023 вне форума
Читатель

Info
Сообщений: 2
Всего лайков: 0
Регистрация: 16.11.2020
Re: Девайсы Logitech и Скрипты Lua

Внутриигровой макрос очень медленный по сравнению с тем что написан на Lua...-не решает
  Ответить с цитированием
Старый 17.11.2020, 10:16   #13 
ExtenZ_MD ExtenZ_MD вне форума
Гуру
 
Аватар для ExtenZ_MD

Info
Сообщений: 4,154
Всего лайков: 118
Регистрация: 14.03.2012
Игра: /offgame
Сервер: /lifer
Танк
Re: Девайсы Logitech и Скрипты Lua

Тогда попробую на G13 сделать макрос, но это не точно
Уж лучше на механике типа ZALMAN ZM-K700M сделать макросы, без всяких LUA
  Ответить с цитированием
Ответ

Вернуться   GoHa.Ru > Форумы > ММО Игры > LINEAGE 2 > Технический раздел
Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


© GoHa.Ru 2003-2026