Диалог и непонятная задержка

3211Marlon1123

Участник
Автор темы
130
12
Версия MoonLoader
.026-beta
Lua:
function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    if on == 1 then
        if dialogId == 248 then
            for i = 0, sampGetListboxItemsCount() - 1 do
                if sampGetListboxItemText(i):find('абоба', 1, true) then
                    sampAddChatMessage(i, main_color)
                end
            end
        end
    end
end
Почему-то номер листа в диалоге (если был найден текст в номере, то его вывести, иначе - пропустить) выводится после обновления диалога (после перехода на следующую страницу). Как фиксануть?

Только что проверил. В других диалогах, где нет пролистывания страниц (id диалога тот же, но, если нажать "далее", то содержимое меняется), такого бага нет.
 

qdIbp

Автор темы
Проверенный
1,387
1,146
Снимок экрана (384).png


Вот тебе варианты может есть лучше но я их не знаю :D
Lua:
function main()
        sampRegisterChatCommand('findi', xz) -- нужно чтобы был открыт диалог
    while true do wait(0)

    end
end

function xz(text)
    if sampIsDialogActive() then -- если открыт диалог
        if #text == 0 then -- если в переменной 0 букв
            return sampAddChatMessage('/findi [text]', -1) -- возрат sampAddChatMessage
        else -- иначе
            for i = 0, sampGetListboxItemsCount() - 1 do print(i)
                if sampGetListboxItemText(i):find(text) then
                    sampAddChatMessage(i, -1)
                    return i
                end
            end
        end
    else 
        sampAddChatMessage('Откройте диалог'-1)
    end
end

Lua:
function sampGetListboxItemByText(text, plain)
    if not sampIsDialogActive() then return -1 end
    plain = not (plain == false)
    for i = 0, sampGetListboxItemsCount() - 1 do
        if sampGetListboxItemText(i):find(text, 1, plain) then
            sampAddChatMessage(i,-1)
            return i
        end
    end
    return -1
end

function main()

    while true do wait(0)
        if on == 1 then
            local index = sampGetListboxItemByText('Донат', false)
        end
    end
end
 
Последнее редактирование:

3211Marlon1123

Участник
Автор темы
130
12
Посмотреть вложение 128529

Вот тебе варианты может есть лучше но я их не знаю :D
Lua:
function main()
        sampRegisterChatCommand('findi', xz) -- нужно чтобы был открыт диалог
    while true do wait(0)

    end
end

function xz(text)
    if sampIsDialogActive() then -- если открыт диалог
        if #text == 0 then -- если в переменной 0 букв
            return sampAddChatMessage('/findi [text]', -1) -- возрат sampAddChatMessage
        else -- иначе
            for i = 0, sampGetListboxItemsCount() - 1 do print(i)
                if sampGetListboxItemText(i):find(text) then
                    sampAddChatMessage(i, -1)
                    return i
                end
            end
        end
    else
        sampAddChatMessage('Откройте диалог'-1)
    end
end

Lua:
function sampGetListboxItemByText(text, plain)
    if not sampIsDialogActive() then return -1 end
    plain = not (plain == false)
    for i = 0, sampGetListboxItemsCount() - 1 do
        if sampGetListboxItemText(i):find(text, 1, plain) then
            sampAddChatMessage(i,-1)
            return i
        end
    end
    return -1
end

function main()

    while true do wait(0)
        if on == 1 then
            local index = sampGetListboxItemByText('Донат', false)
        end
    end
end
Юзану второй способ, просто потом on в другое число переведу. Ща проверю всё. Только единственное не понял что, это в методе :find что значит true/false?

Я читал на вики, там написано типо: true - параметр по умолчанию. Если true - производит поиск текста как есть
 

qdIbp

Автор темы
Проверенный
1,387
1,146
Юзану второй способ, просто потом on в другое число переведу. Ща проверю всё. Только единственное не понял что, это в методе :find что значит true/false?

Я читал на вики, там написано типо: true - параметр по умолчанию. Если true - производит поиск текста как есть
Необязательный параметр, но кто то все равно юзает, если не изменяет память true это как ==
 
Последнее редактирование: