хук диалога

$Mr.R1ch$

Активный
Автор темы
285
40
Версия MoonLoader
Другое
приветствую, пытался хукнуть диалог и проверить в нем найденный текст, но ничего не получилось, как все должно быть:
Когда открывается диалог, то скрипт начинает искать заданный текст, и если он найден - переменная будет равняться true (в обратном случае false), но на бх особо подробных гайдов не нашел, помогите.

Lua:
function ev.onShowDialog(dialogId, style, title, button1, button2, text)
           if text:find('Мед.Карта [Полностью здоровый(ая)]') then
              print('Вы здоровы!')
           else
              print('Обновите мед.карту!')
           end
        end
тут скрипт ищет текст с диалога мед.карты на арз (ид: 1234)
 
Решение
Lua:
local sampev = require('lib.samp.events')

function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    setClipboardText(text)
end

Попробуй так
получилось, но там с кодировкой траблы

проблему решил, я долбаёб забыл в другой функции диалога убрать привязку lib.samp.events

$Mr.R1ch$

Активный
Автор темы
285
40

Вложения

  • IMG_20240914_194219.jpg
    IMG_20240914_194219.jpg
    404.2 KB · Просмотры: 33

IlyaFontonov

Активный
147
36
мб надо первую строку хукать?
Мед. Карта, а не Мед.Карта

Lua:
function ev.onShowDialog(dialogId, style, title, button1, button2, text)

           if text:find('Мед. Карта %[Полностью здоровый%(ая%)%]') then

              print('Вы здоровы!')

           else

              print('Обновите мед.карту!')

           end

        end
 
  • Нравится
Реакции: wojciech?

$Mr.R1ch$

Активный
Автор темы
285
40
Мед. Карта, а не Мед.Карта

Lua:
function ev.onShowDialog(dialogId, style, title, button1, button2, text)

           if text:find('Мед. Карта %[Полностью здоровый%(ая%)%]') then

              print('Вы здоровы!')

           else

              print('Обновите мед.карту!')

           end

        end
исправил давно так то, и ничего
 
  • Клоун
Реакции: wojciech?

$Mr.R1ch$

Активный
Автор темы
285
40
Lua:
local sampev = require('lib.samp.events')
function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    if title:find('Мед. карта') then
        if text:find('Полностью здоровый') then
            sampAddChatMessage('Вы здоровый', -1)
        else
            sampAddChatMessage('Обновите мед.карту!', -1)
        end
    end
end
не работает, даже те скобки экранизировал
 

$Mr.R1ch$

Активный
Автор темы
285
40
Lua:
local sampev = require('lib.samp.events')

function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    if title:find('Мед. карта') then
        setClipboardText(text)
    end
end

Скинь скопированный текст
Lua:
function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    if text:find('Полностью здоровый') then
        sampAddChatMessage('Вы здоровый', -1)
    end
end
вот старый код твой
 

IlyaFontonov

Активный
147
36
Зайди в игру с этим скриптом, и открой этот диалог, и у тебя скопируется текст этого диалога, и пришли его сюда.
Lua:
local sampev = require('lib.samp.events')

function sampev.onShowDialog(dialogId, style, title, button1, button2, text)
    if title:find('Мед. карта') then
        setClipboardText(text)
    end
end