[LUA] Поиск строки в чате и взаимодействие с диалогом

F L I P S T A R

Участник
Автор темы
62
1
Версия SA-MP
  1. 0.3.7-R3
Есть вопрос касательно нахождения строки в чате. Есть скрипт, который при появлении определённой строки в чате совершает действие в диалоге, нажимает определённую кнопку, грубо говоря. Нужно, чтобы, когда я открыл диалоговое окно и появляется нужная строка в чате, совершалось взаимодействие с диалогом, т.е. нажималась кнопка. Но в текущем, открытом диалоге это почему то не хочет происходить, а если открою заново уже с выполненным условием, то все срабатывает. Как сделать, чтоб именно уже в открытом диалоге при срабатывании условия сразу происходило действие?
 
Решение
Он есть, но толком ничего не даст. Мне просто надо понять, предусмотрено ли языком луа, что при успешном нахождении строчки в чате при открытом диалоговом окне, будут выполняться указанные действия прямо в этом диалоговом окне или надо заново его открывать?
На 5 строке заменяй 'Текст' на тот, что тебе нужно найти в чате. Скрипт сохраняй с кодировкой Windows 1251 чтобы русские символы работали
Элементы списка диалога считаются с 0, то есть первая опция из списка в коде отмечается как 0 и т.д.
Lua:
local sampev = require 'samp.events'

function sampev.onServerMessage(color, text)
    local dialogId = sampGetCurrentDialogId()
    if text:find('Текст') and sampIsDialogActive() then -- проверка на текст и открыт ли диалог...

F L I P S T A R

Участник
Автор темы
62
1
Скинь код если он уже есть
Он есть, но толком ничего не даст. Мне просто надо понять, предусмотрено ли языком луа, что при успешном нахождении строчки в чате при открытом диалоговом окне, будут выполняться указанные действия прямо в этом диалоговом окне или надо заново его открывать?
 

Heav

Активный
186
65
Он есть, но толком ничего не даст. Мне просто надо понять, предусмотрено ли языком луа, что при успешном нахождении строчки в чате при открытом диалоговом окне, будут выполняться указанные действия прямо в этом диалоговом окне или надо заново его открывать?
На 5 строке заменяй 'Текст' на тот, что тебе нужно найти в чате. Скрипт сохраняй с кодировкой Windows 1251 чтобы русские символы работали
Элементы списка диалога считаются с 0, то есть первая опция из списка в коде отмечается как 0 и т.д.
Lua:
local sampev = require 'samp.events'

function sampev.onServerMessage(color, text)
    local dialogId = sampGetCurrentDialogId()
    if text:find('Текст') and sampIsDialogActive() then -- проверка на текст и открыт ли диалог
        sampSendDialogResponse(dialogId, 1, 0) -- 1 = кнопка внизу диалога, 0 = элемент из списка
    end
end
 

Вложения

  • answer.lua
    250 байт · Просмотры: 6
  • Нравится
Реакции: F L I P S T A R

F L I P S T A R

Участник
Автор темы
62
1
На 5 строке заменяй 'Текст' на тот, что тебе нужно найти в чате. Скрипт сохраняй с кодировкой Windows 1251 чтобы русские символы работали
Элементы списка диалога считаются с 0, то есть первая опция из списка в коде отмечается как 0 и т.д.
Lua:
local sampev = require 'samp.events'

function sampev.onServerMessage(color, text)
    local dialogId = sampGetCurrentDialogId()
    if text:find('Текст') and sampIsDialogActive() then -- проверка на текст и открыт ли диалог
        sampSendDialogResponse(dialogId, 1, 0) -- 1 = кнопка внизу диалога, 0 = элемент из списка
    end
end
Спасибо, все работает.