вызов мимгуи окна по сообщению в чате

Qwerty???

Участник
Автор темы
175
8
Версия MoonLoader
.027.0-preview
как можно сделать фрейм, который будет появляться по тексту в чате и будет пропадать через 10 сек?
 
Решение
Lua:
if text:find('привет') then
    frame = true --твой фрейм
    lua_thread.create(function()
        while os.clock() - os.clock() < 10 do
            wait(1000) -- Ждем 1 секу (безопаска)
        end
        if frame then -- проверка фрейма на его активность
            frame = false
            sampAddChatMessage("Фрейм закрыт по истечении 10 секунд", -1)
        end
    end)
end

??

dmitry.karle

Известный
408
109
Lua:
if text:find('привет') then
    frame = true --твой фрейм
    lua_thread.create(function()
        while os.clock() - os.clock() < 10 do
            wait(1000) -- Ждем 1 секу (безопаска)
        end
        if frame then -- проверка фрейма на его активность
            frame = false
            sampAddChatMessage("Фрейм закрыт по истечении 10 секунд", -1)
        end
    end)
end

??
 

Qwerty???

Участник
Автор темы
175
8
Lua:
if text:find('привет') then
    frame = true --твой фрейм
    lua_thread.create(function()
        while os.clock() - os.clock() < 10 do
            wait(1000) -- Ждем 1 секу (безопаска)
        end
        if frame then -- проверка фрейма на его активность
            frame = false
            sampAddChatMessage("Фрейм закрыт по истечении 10 секунд", -1)
        end
    end)
end

??
а можешь сразу с фреймом пример продемонстрировать?
а то в моем скрипте крашит, хз че не так
 

dmitry.karle

Известный
408
109
Lua:
if text:find('привет') then
    frame[0] = true --твой фрейм
    local start_time = os.clock()
    lua_thread.create(function()
        while os.clock() - start_time < 10 do
            wait(1000) -- Ждем 1 секу (безопаска)
        end
        if frame[0] then -- проверка фрейма на его активность
            frame[0] = false
            sampAddChatMessage("Фрейм закрыт по истечении 10 секунд", -1)
        end
    end)
end
ключ фрейма используй + локальную добавил (мой косяк).

mimgui - frame[0]
imgui - frame.v
 

Qwerty???

Участник
Автор темы
175
8
Lua:
if text:find('привет') then
    frame[0] = true --твой фрейм
    local start_time = os.clock()
    lua_thread.create(function()
        while os.clock() - start_time < 10 do
            wait(1000) -- Ждем 1 секу (безопаска)
        end
        if frame[0] then -- проверка фрейма на его активность
            frame[0] = false
            sampAddChatMessage("Фрейм закрыт по истечении 10 секунд", -1)
        end
    end)
end
ключ фрейма используй + локальную добавил (мой косяк).

mimgui - frame[0]
imgui - frame.v
Код:
[ML] (error) PossibleProject.lua: D:\Sborka by goose\moonloader\PossibleProject.lua:226: attempt to index global 'text' (a nil value)
stack traceback:
    D:\Sborka by goose\moonloader\PossibleProject.lua:226: in main chunk
 
  • Эм
Реакции: dmitry.karle

dmitry.karle

Известный
408
109
скинь код что ты там делаешь или ты if text:find() then просто в код закидываешь? Так тогда попробуй)) у меня всё работает.

Lua:
require('lib.samp.events').onServerMessage = function(color, text)
    if text:find('привет') then
        frame[0] = true --твой фрейм
        local start_time = os.clock()
        lua_thread.create(function()
            while os.clock() - start_time < 10 do
                wait(1000) -- Ждем 1 секу (безопаска)
            end
            if frame[0] then -- проверка фрейма на его активность
                frame[0] = false
                sampAddChatMessage("Фрейм закрыт по истечении 10 секунд", -1)
            end
        end)
    end
end
 

Qwerty???

Участник
Автор темы
175
8
Фрейм не рисуется, курсор появляется но фрейма нет
Хелп

Код:
imgui.OnFrame(function() return frame[0] and not isGamePaused() end, function()
    imgui.SetNextWindowPos(imgui.ImVec2(0, 0), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(315, 35), imgui.Cond.Always)
    imgui.Begin('##WaterMarkWindow', frame, imgui.WindowFlags.NoMove + imgui.WindowFlags.NoDecoration)

    imgui.End()
end)

require('lib.samp.events').onServerMessage = function(color, text)
    if text:find('Операция Мираж') then
        frame[0] = true --твой фрейм
        local start_time = os.clock()
        lua_thread.create(function()
            while os.clock() - start_time < 10 do
                wait(1000)
            end
            if frame[0] then
                frame[0] = false
            end
        end)
    end
end
 

dmitry.karle

Известный
408
109
Фрейм не рисуется, курсор появляется но фрейма нет
Хелп

Код:
imgui.OnFrame(function() return frame[0] and not isGamePaused() end, function()
    imgui.SetNextWindowPos(imgui.ImVec2(0, 0), imgui.Cond.FirstUseEver, imgui.ImVec2(0.5, 0.5))
    imgui.SetNextWindowSize(imgui.ImVec2(315, 35), imgui.Cond.Always)
    imgui.Begin('##WaterMarkWindow', frame, imgui.WindowFlags.NoMove + imgui.WindowFlags.NoDecoration)

    imgui.End()
end)

require('lib.samp.events').onServerMessage = function(color, text)
    if text:find('Операция Мираж') then
        frame[0] = true --твой фрейм
        local start_time = os.clock()
        lua_thread.create(function()
            while os.clock() - start_time < 10 do
                wait(1000)
            end
            if frame[0] then
                frame[0] = false
            end
        end)
    end
end
убери позицию окна. В мимгуи позиция окна не нужна, так как мимгуи сам сохраняет свою позицию в отдельной папке. Проверь это.