-- =========================================================================== -- Atalhos - teclas do cliente (pedidos do dono em 21 e 22/10/2026). Os comandos continuam valendo: a tecla so manda -- o comando, como se o jogador digitasse (SendPlayerChat), e o servidor confere tudo. -- -- B /abrirbau abre o bau; com o bau aberto, fecha (o servidor deixa abrir em qualquer lugar) -- A /autopot liga e desliga o AutoPot -- R /reset auto liga e desliga o reset automatico. O jogador desliga a tecla com /atalhor (01/11/2026): o servidor -- guarda a escolha da conta (Scripts/AtalhoReset, tabela AtalhoReset) e manda AR_Estado no login -- A janela do Gens (B nativo) saiu pelo MainInfo.ini: DisableGens = 1 (22/10/2026). -- -- H e I voltaram a ser do jogo (decisao do dono, 22/10/2026; a troca fica para depois, card no Trello). O teste de -- 22/10 mostrou por que o script nao conseguia: o gancho KeyboardEvent nao segura a tecla, e o CloseCustomWindow nao -- fecha o Event Time do Louis (o script fechava a cada quadro e ela continuava aberta, linhas [UXdbg] do log). -- Nada dispara com o chat aberto (as teclas sao letras). -- =========================================================================== local K_B, K_A, K_R = 66, 65, 82 -- Util/KeysValue.lua local REPIQUE = 10 -- a mesma tecla dentro disso (quadros) conta como o mesmo aperto -- Teclas contadas para a pesquisa de UX (servidor: Scripts/UsoComandos): B, A, H, I, J, N, R, V e F8 local MEDIR = { [65] = true, [66] = true, [72] = true, [73] = true, [74] = true, [78] = true, [82] = true, [86] = true, [119] = true } local Quadro = 0 local Ultima = {} -- [tecla] = quadro do ultimo aperto aceito local ResetLigado = true -- tecla R; o servidor manda AR_Estado (1 ligado, 0 desligado) no login e no /atalhor local function Comando(txt) pcall(SendPlayerChat, txt) end function Atalhos_Tecla(key) if CheckWindowOpen(UIChatWindow) == 1 then return end if Ultima[key] and Quadro - Ultima[key] < REPIQUE then return end Ultima[key] = Quadro if MEDIR[key] then pcall(function() CreatePacket("UX_Tecla", 1); SetDwordPacket("UX_Tecla", key); SendPacket("UX_Tecla"); ClearPacket("UX_Tecla") end) end if key == K_B then if UIWarehouse and CheckWindowOpen(UIWarehouse) == 1 then CloseWindow(UIWarehouse) else Comando("/abrirbau") end elseif key == K_A then Comando("/autopot") elseif key == K_R then if ResetLigado then Comando("/reset auto") end end end local function Protocolo(head, nome) if nome ~= "AR_Estado" then return nil end local ok, v = pcall(GetDwordPacket, nome) if not ok or tonumber(v) == nil then ok, v = pcall(GetDwordPacket, nome, -1) end pcall(ClearPacket, nome) if tonumber(v) ~= nil then ResetLigado = (tonumber(v) ~= 0) end return true end if ProtocolFunctions ~= nil and ProtocolFunctions.ClientProtocol ~= nil then ProtocolFunctions.ClientProtocol(Protocolo) end function Atalhos_Quadro() Quadro = Quadro + 1 end BridgeFunctionAttach('KeyboardEvent', 'Atalhos_Tecla') BridgeFunctionAttach('MainInterfaceProcThread', 'Atalhos_Quadro')