@CADIAR, eliminé tu mensaje original por error, te envié un MP con el post, si lo vuelves a postear elimino mi post para no crear confusiones.
Porfavor, lee las normas:
1. Los códigos tienen que ir con su etiqueta Geshi, usa el botón para insertar código.
(
El autor del siguiente mensaje es @CADIAR, no yo. )
Actualizando...
Conseguí un script que debería hacer lo que quiero, darle dos funciones a los botones según el tiempo que se mantengan presionados, pero me de el siguiente error cuando lo ejecuto:
E:\Logitech Scripts\llProject\llProject.lua:24: chunk has too many syntax levels
este es el script en cuestión:
-- llProject End -->
ll=ll or {}; ll.SETUP = { Folder = [[E:\Logitech Scripts\llProject\]] }
dofile(ll.SETUP.Folder .. [[llProject.lua]])
-- llProject End -->
-- ll.devMode = dm_TEST
function _onActivation()
--
-- ADD ANY START UP ROUTINES HERE
--
ll.mouse.map[0] = {
}
ll.lhc.map[1] = {
G1 = { fn_ClickHold, "a", 30, "b", 1000 },
G2 = { fn_ClickHold, { "lctrl", "c" }, 30, { "lshift", "d"}, 1000 },
}
end
ClickHoldInfo = {}
function fn_ClickHold( ClickTableOrKey, ClickDelay, HoldTableOrKey, HoldDelay )
local key = ll.Event.Mode .. "|" .. ll.Event.Key .. "|" .. ll.Event.Family
if ll.Event.Pressed then
ClickHoldInfo[key] = { timestamp = GetRunningTime(), held = false }
elseif ll.Event.Down then
if not ClickHoldInfo[key].held and GetRunningTime() - ClickHoldInfo[key].timestamp >= HoldDelay then
Press( HoldTableOrKey, ClickDelay )
ClickHoldInfo[key].held = true
end
elseif ll.Event.Released then
if GetRunningTime() - ClickHoldInfo[key].timestamp < HoldDelay then
PressAndRelease( ClickTableOrKey, ClickDelay )
else
Release( HoldTableOrKey, ClickDelay )
end
ClickHoldInfo[key] = nil
end
end
function Press( TableOrKey )
local key, table
if type(TableOrKey) == "table" then
table = TableOrKey
elseif type(TableOrKey) == "string" then
key = TableOrKey
else
return
end
if key then
ll.Press(key)
else
for i, v in ipairs(table) do
ll.Press(v)
end
end
end
function Release( TableOrKey )
local key, table
if type(TableOrKey) == "table" then
table = TableOrKey
elseif type(TableOrKey) == "string" then
key = TableOrKey
else
return
end
if key then
ll.Press(key)
else
for i, v in ipairs(table) do
ll.Release(v)
end
end
end
function PressAndRelease( TableOrKey, delay )
local key, table
local delay = delay or 0
if type(TableOrKey) == "table" then
table = TableOrKey
elseif type(TableOrKey) == "string" then
key = TableOrKey
else
return
end
if key then
ll.Press(key)
Sleep(delay)
ll.Release(key)
else
for i, v in ipairs(table) do
ll.Press(v)
end
Sleep(delay)
for i, v in ipairs(table) do
ll.Release(v)
end
end
end