помогите с кодом

kalonne

Новичок
Автор темы
10
3
Версия MoonLoader
.027.0-preview
Хочу, чтобы вы мне помогли написать код, который будет логировать чат, сверять его с ником, и когда ник совпадает, то прописывать команду /mb. Я играю на Аризоне. Также не важно, в какой чат будет написано что-то, главное, чтобы скрипт мог распознавать ники, сверять их и прописывать команду.


вот я написал код.
код:
local sampev = require 'samp.events'
local encoding = require('encoding')
encoding.default = 'UTF-8'

-- Список отслеживаемых ников
local targetNicknames = {"Yaroslav_Exlusiv"}

-- Ключевые слова для проверки (включая "золото")
local keywords = {"гей", "даун", "золото"}

-- Функция для обработки серверных сообщений
function sampev.onServerMessage(color, text)
    local decoded_text = encoding.UTF8(text)

    -- Извлекаем ник игрока и текст сообщения
    local playerNickname, message = decoded_text:match("^(%S+)%[(%d+)%] говорит:{?.-(.-)}$")

    -- Проверяем, если извлекли ник игрока и сообщение
    if playerNickname and message then
        -- Проходим по всем отслеживаемым никам
        for _, targetNickname in ipairs(targetNicknames) do
            -- Если ник игрока совпадает с одним из отслеживаемых
            if string.lower(playerNickname) == string.lower(targetNickname) then
                -- Проверяем, содержатся ли ключевые слова в сообщении
                for _, keyword in ipairs(keywords) do
                    -- Ищем ключевое слово в строке
                    if string.find(string.lower(message), string.lower(keyword)) then
                        -- Если нашли ключевое слово, выполняем команду /members
                        sampev.sendMessage("/members")
                        return -- Завершаем выполнение, чтобы команда не исполнилась несколько раз
                    end
                end
                break
            end
        end
    end
end
я хочу добавить ключивые слова, добавил, а скрипт не работает.
 
Последнее редактирование:
  • Эм
Реакции: kyrtion

kyrtion

Известный
1,053
379
Ты чаще всего обращаешься с чатгпт. У меня есть просьба для тебя: харе уже писать в чатгпт, у них нет знании на MoonLoader!!!!
Поэтому:
1. Игра написана с кодировкой ANSI, а значит, нужно писать на Windows 1251 (CP1251)
2. Проще пробить по str:find, а потом уже получать str:match
3. sampev.sendMessage("/members") так не сработает, sampSendChat("/members")