text:find

Neil_

Известный
Автор темы
205
32
Версия MoonLoader
Другое
Что за хуйня, почему не ищет в этом ебаном диалоге
Grand Theft Auto  San Andreas Screenshot 2022.04.06 - 03.26.29.43.png

предмет обычным способом как во всех адекватных диалогах
Lua:
function samp.onShowDialog(id,style,title,b1,b2,text)
    if id == 3082 then
        if text:find("Предмет: (.+)") then
            print('+')
        end
    end
end
но нихуя не работает
 
Решение
1. Импортировал ли ты либу?
2. Цветовые коды считаются за текст, ты же видишь, что "хлопок" желтый. Значит перед ним стоит цветовой код формата HEX ( {AFAFAF} например ). HEX число в регулярных выражениях отображается через %x или можно конкретно цветовой код выделить при помощи {......}
3. Так же никогда не сравнивай диалоги по ID.

code:
local events = require 'samp.events'

function events.onShowDialog(id, style, title, button1, button2, text)
    if title:find('{%x+}Покупка предмета') then
        if text:find('Предмет: {%x+}(.+)') then
            print('+')
        end
    end
end

neverlessy

Потрачен
170
120
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
1. Импортировал ли ты либу?
2. Цветовые коды считаются за текст, ты же видишь, что "хлопок" желтый. Значит перед ним стоит цветовой код формата HEX ( {AFAFAF} например ). HEX число в регулярных выражениях отображается через %x или можно конкретно цветовой код выделить при помощи {......}
3. Так же никогда не сравнивай диалоги по ID.

code:
local events = require 'samp.events'

function events.onShowDialog(id, style, title, button1, button2, text)
    if title:find('{%x+}Покупка предмета') then
        if text:find('Предмет: {%x+}(.+)') then
            print('+')
        end
    end
end
 

Neil_

Известный
Автор темы
205
32
1. Импортировал ли ты либу?
2. Цветовые коды считаются за текст, ты же видишь, что "хлопок" желтый. Значит перед ним стоит цветовой код формата HEX ( {AFAFAF} например ). HEX число в регулярных выражениях отображается через %x или можно конкретно цветовой код выделить при помощи {......}
3. Так же никогда не сравнивай диалоги по ID.

code:
local events = require 'samp.events'

function events.onShowDialog(id, style, title, button1, button2, text)
    if title:find('{%x+}Покупка предмета') then
        if text:find('Предмет: {%x+}(.+)') then
            print('+')
        end
    end
end
Не работает
 

ARMOR

011110000111100101101001
Модератор
4,939
6,738
Чел не подумал что цвет первого слова "Предмет" тоже не стандартный, т.е белый.
Lua:
local events = require 'samp.events'
function events.onShowDialog(id, style, title, button1, button2, text)
    if title:find('{......}Покупка предмета') then
        if text:find('{......}Предмет: {......}(.+)') then
            print('+')
        end
    end
end
 

Neil_

Известный
Автор темы
205
32
Чел не подумал что цвет первого слова "Предмет" тоже не стандартный, т.е белый.
Lua:
local events = require 'samp.events'
function events.onShowDialog(id, style, title, button1, button2, text)
    if title:find('{......}Покупка предмета') then
        if text:find('{......}Предмет: {......}(.+)') then
            print('+')
        end
    end
end
Не работает
 

neverlessy

Потрачен
170
120
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
{......}
{%x+} выглядит как по мне проще и меньше места занимает... Лично я частенько ошибаюсь с количеством точек
Опять же. не учи человека говну (Сравнивать диалоги пo id)

Попробуй после предмет : (двоиточие) заменить на . (точку)
 

ARMOR

011110000111100101101001
Модератор
4,939
6,738
{......}
{%x+} выглядит как по мне проще и меньше места занимает... Лично я частенько ошибаюсь с количеством точек
Опять же. не учи человека говну (Сравнивать диалоги пo id)


Попробуй после предмет : (двоиточие) заменить на . (точку)
Посмотри мой первый код, там я по Титлу проверял, подумал что проблема может быть с его проверкой и стал проверять по id