Как сделать это?

hahabog

Новичок
Автор темы
27
8
Версия MoonLoader
.026-beta
Всем привет, я начинающий скриптер на луа, только обучаюсь
Начал делать скрипт позволяющий вывести из диалогового окна(Например: /leaders и вывод орги, ника, айди, телефон) инфу в чат, выводить научился, но столкнулся с проблемой, он выводит в чат абсолютно все диалоги, даже /mn . Еще одна проблема на моем проекте все диалоги с 0 айдишником. Помогите

Вот код:
local sampev = require 'lib.samp.events'
 
function main()
    sampAddChatMessage('hueglot script ept', 0xffffff)
end
 
function sampev.onShowDialog(dId,s,t,b1,b2,text)
    print(text) --ввыоит в консоль мне так проще
    for s in text:gmatch("[^\n]+") do --режет текст чтобы не выводился в одну строку
        if t:find('Заместители онлайн') then --тут пытался сделать через поиск, но с его консрукцией мало знаком
            sampAddChatMessage(s, 0xffffff) --VS Code дает в это строке предупреждение
            else
                sampAddChatMessage('Nichego net', 0xffffff) --VS Code дает в это строке предупреждение
                end
        end -- скрипт не работает и выводит Nichego net столько раз сколько строк в диалоговом окне
    end
 
Последнее редактирование:

Vespan

loneliness
Проверенный
2,105
1,634
Еще одна проблема на моем проекте все диалоги с 0 айдишником.
Нормальнохуле
Делаешь проверку на текст-заголовок-стиль или кнопки (или все сразу)
Lua:
if text:find(...) then
что?
 
  • Нравится
Реакции: YarikVL

Oleg Sleash

Участник
68
97
Зачем проверять заголовок диалога при чтении каждой строчки, он же не меняется.
Lua:
local sampev = require 'lib.samp.events'
 
function main()
    sampAddChatMessage('hueglot script ept', -1)
end
 
function sampev.onShowDialog(dId,s,t,b1,b2,text)
    print(text)
    if t:find('Заместители онлайн') then -- Если это диалог с заместителями онлайн, то:
        for s in text:gmatch("([^\n]+)") do -- Разделяем весь текст диалога построчно
            -- Ах да, что бы gmatch захватывал несколько символов, окружаем его скобками, вроде это так работает
            sampAddChatMessage(s, -1) -- выводим строчку диалога в чат
        end
    else
        sampAddChatMessage('Ты открыл диалог НЕ с заместителям онлайн', -1) -- Ну тут понятно
    end
end