text:find

Neil_

Активный
Автор темы
200
29
Версия 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
121
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
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_

Активный
Автор темы
200
29
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

kjor32 is legend
Модератор
4,852
6,083
Чел не подумал что цвет первого слова "Предмет" тоже не стандартный, т.е белый.
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_

Активный
Автор темы
200
29
Чел не подумал что цвет первого слова "Предмет" тоже не стандартный, т.е белый.
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
121
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
{......}
{%x+} выглядит как по мне проще и меньше места занимает... Лично я частенько ошибаюсь с количеством точек
Опять же. не учи человека говну (Сравнивать диалоги пo id)

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

ARMOR

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


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