Как перехватить число

Fasmin

Участник
Автор темы
148
2
Версия MoonLoader
.026-beta
Как в диалоге с айди 0 перехватить число которое написано во 2 столбике? Типо 6сти значное число, как его перехватить?
1630347577531.png
 

shizzard

Участник
150
7
Lua:
function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    if id == 0 then
        for item in text:gmatch("[^\r\n]+") do
            if item:match("Номер аккаунта") then
                local number = item:match('Номер аккаунта.+(%d+)')
                sampAddChatMessage(number,-1)
            end
        end
    end
end
В случае item:match нкжно вводить строго как написано, там item:match("Номер аккаунта:")
item:find ведь можно использовать, чтобы не париться с правильностью текста
 

Fasmin

Участник
Автор темы
148
2
Lua:
function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    if id == 0 then
        for item in text:gmatch("[^\r\n]+") do
            if item:match("Номер аккаунта") then
                local number = item:match('Номер аккаунта.+(%d+)')
                sampAddChatMessage(number,-1)
            end
        end
    end
end
появляется просто пустая строка в чате
 

Akionka

akionka.lua
Проверенный
742
502
появляется просто пустая строка в чате
Lua:
function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    if id == 0 then
        for item in text:gmatch("[^\r\n]+") do
            if item:match("Номер аккаунта") then
                local number = item:match('Номер аккаунта:.-{%x+}(%d+)')
                sampAddChatMessage(number,-1)
            end
        end
    end
end
 
Последнее редактирование:
  • Нравится
Реакции: Manuel Leon

Fasmin

Участник
Автор темы
148
2
Lua:
function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    if id == 0 then
        for item in text:gmatch("[^\r\n]+") do
            if item:match("Номер аккаунта") then
                local number = item:match('Номер аккаунта:.-{%x+}(%d+)')
                sampAddChatMessage(number,-1)
            end
        end
    end
end
ничего не изменилось чел
1630403306431.png

кто нибудь поможет не?
 
Последнее редактирование:

Manuel Leon

Известный
266
169

Rice.

Известный
Модератор
1,755
1,619
Lua:
function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    if id == 0 then
        for item in text:gmatch("[^\r\n]+") do
            if item:match("Номер аккаунта") then
                local number = item:match('Номер аккаунта.+(%d+)')
                sampAddChatMessage(number,-1)
            end
        end
    end
end
Прошу не забывать про хук цвета - {......}
 
  • Нравится
Реакции: Manuel Leon

Snoopcheg

Известный
151
82
ничего не изменилось чел Посмотреть вложение 112762
кто нибудь поможет не?
Вот это "чел". Столько вопросов было на такую тему на форуме, но я создам тему, потому что мне лень воспользоваться поиском.
Проверку на нужный диалог лучше делать по названию (title). Регулярка, которую тебе дали, работает. Итог: сделай нормальную проверку на диалог.
 

Cosmo

Известный
Друг
653
2,723
{%x+} - так будет эффективнее, так как ищет только 16-тиричные символы

@Fasmin пустота между левым столбиком и правым создаётся через табуляцию (\t)
По твоему скрину могу дать такой вариант:
Lua:
function se.onShowDialog(id, style, title, but_1, but_2, text)
    text = string.gsub(text, "{%x+}", "") -- Избавимся от цветов
    for line in string.gmatch(text, "[^\n]+") do
        local key, value = string.match(line, "([^\t]+):\t([^\n]+)")
        if key and value then
            -- code
        end
    end
end
 
  • Нравится
Реакции: Rice. и Vintik

Fasmin

Участник
Автор темы
148
2
{%x+} - так будет эффективнее, так как ищет только 16-теричные символы

@Fasmin пустота между левым столбиком и правым создаётся через табуляцию (\t)
По твоему скрину могу дать такой вариант:
Lua:
function se.onShowDialog(id, style, title, but_1, but_2, text)
    text = string.gsub(text, "{%x+}", "") -- Избавимся от цветов
    for line in string.gmatch(text, "[^\n]+") do
        local key, value = string.match(line, "([^\t]+):\t([^\n]+)")
        if key and value then
            -- code
        end
    end
end
он получает всё, а мне нужно только номер аккаунта