Помогите совместить 2 простых скрипта в 1.

furkov

Участник
Автор темы
21
1
Версия SA-MP
  1. 0.3.7-R3
Всем доброго времени суток !

В общем, в луа не особо понимаю, хочу совместить 2 простых скриптика в 1, перепробовал много вариантов. Выходит только так, что работает только 1 часть скрипта.

По отдельности 2 скрипта работают, буду благодарен если кто то поможет.

1 скриптик - выводит сообщение в чат после удержания кнопки 2 секунды
Lua:
require("moonloader")

function main()
    local hold_timeout = 2.000 -- sec
    local keydown_start

    while true do
        wait(0)
      
        if isKeyJustPressed(VK_XBUTTON1) then
            keydown_start = os.clock()
      
        elseif isKeyDown(VK_XBUTTON1) then
            if keydown_start and (os.clock()-keydown_start) > hold_timeout then
                keydown_start = nil
                sampSendChat("/n Obossan by Killside")
            end
      
        else
            keydown_start = nil
        end
    end
end


2 скриптик - вызывает анимку ссания по зажатию кнопки
Lua:
require 'lib.moonloader'
local vkeys = require "vkeys"

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    while true do
        wait(100)
            if not sampIsDialogActive() and not sampIsChatInputActive() then
            if isKeyDown(VK_XBUTTON1) then
                sampSetSpecialAction(68)
            else
                sampSetSpecialAction(0)
            end
        end
    end
end


Хотел сделать, что бы при зажатии кнопки начиналась анимка ссания и после удержания 2 сек выводилось сообщение в чат (что и происходит если скрипты по отдельности).
 
Последнее редактирование:

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Друг
8,747
11,156
Lua:
require("moonloader")
local hold_timeout = 2.000 -- sec
local keydown_start = -1

function main()
    while not isSampAvailable() do wait(0) end
    while true do
        wait(0)
        if isKeyJustPressed(VK_XBUTTON1) then
            sampSetSpecialAction(68)
            keydown_start = os.clock()
        elseif isKeyDown(VK_XBUTTON1) then
            if keydown_start ~= -1 and (os.clock()-keydown_start) > hold_timeout then
                keydown_start = -1
                sampSendChat("/n Obossan by Killside")
                --sampSetSpecialAction(0)
            end
        else
            keydown_start = -1
        end
    end
end
если надо что бы анимка убиралась после отправления текста в чат то убери "--" из 16 строки
 
У

Удалённый пользователь 487823

Гость
Тебе в виде меню или просто так же только в 1
Lua:
require("moonloader")
local hold_timeout = 2.000 -- sec
local keydown_start = -1

function main()
    while not isSampAvailable() do wait(0) end
    while true do
        wait(0)
        if isKeyJustPressed(VK_XBUTTON1) then
            sampSetSpecialAction(68)
            keydown_start = os.clock()
        elseif isKeyDown(VK_XBUTTON1) then
            if keydown_start ~= -1 and (os.clock()-keydown_start) > hold_timeout then
                keydown_start = -1
                sampSendChat("/n Obossan by Killside")
                --sampSetSpecialAction(0)
            end
        else
            keydown_start = -1
        end
    end
end
если надо что бы анимка убиралась после отправления текста в чат то убери "--" из 16 строки
Qq chapo