Как сделать проверку на сообщение из чата?

Fasmin

Участник
Автор темы
112
2
Версия MoonLoader
.026-beta
Мне нужно, чтобы когда приходит сообщение "Принял предложение работать на вас!", то выходила сообщение "sampAddChatMessage("Игрок " .. sampGetPlayerNickname(id) .. "[" .. id .. "]" .. " был успешно принят.", color)", иначе "Игрок отказался.", но что-то не получается. Помогите пожалуйста.

lua:
local inviteMessage = nil

if wasKeyPressed(keys.VK_J) and not sampIsCursorActive() and not sampIsDialogActive() then
            local _, char = getCharPlayerIsTargeting()
            if _ then
                local __, id = sampGetPlayerIdByCharHandle(char)
                if __ then
                    sampSendChat("/jobinvite " .. id)
                    --if inviteMessage == true then
                    --    sampAddChatMessage("Игрок " .. sampGetPlayerNickname(id) .. "[" .. id .. "]" .. " был успешно принят.", color)
                    --else
                    --    sampAddChatMessage("Игрок отказался.", -1)
                    --end
                end
            end
        end
        
function ev.onServerMessage(color, text)
    --if inviteMessage then
    --    text:find("Принял предложение работать на вас!")
    --end
    if text:find("Принял предложение работать на вас!") then
        sampAddChatMessage("GOOOD", -1)
    end
end
 

Dozor

Потрачен
359
143
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
if text:match == "Принял предложение работать на вас!" then
не пиши хуйню. match это функция, её нельзя прировнять в условии if к чему либо.

Можешь попробовать так
lua:
if text:match("Принял предложение работать на вас!") then
    sampAddChatMessage("GOOOD", -1)
end
 

Fasmin

Участник
Автор темы
112
2
кинь скрин строчки из чата
CRvYrhOJTlI.jpg


не пиши хуйню. match это функция, её нельзя прировнять в условии if к чему либо.

Можешь попробовать так
lua:
if text:match("Принял предложение работать на вас!") then
    sampAddChatMessage("GOOOD", -1)
end
И что мне даст text:match? Суть в том, что текст то перехватывается и через text:find, но работает скрипт не так как надо.
 

Dozor

Потрачен
359
143
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Посмотреть вложение 119590


И что мне даст text:match? Суть в том, что текст то перехватывается и через text:find, но работает скрипт не так как надо.
ну а чучуть подумать головой не?

луа:
function ev.onServerMessage(color, text)
    if text:find('Принял предложение работать на вас!') then
        nick, byid = text:match('(.-)%[(%d+)%] Принял предложение работать на вас!')
        sampAddChatMessage("Игрок " .. nick .. "[" .. byid .. "]" .. " был успешно принят.", color)
    elseif text:match('Игрок отказался.') then
        sampAddChatMessage("Сам напишешь текст.", color)
    end
end

ну а чучуть подумать головой не?

луа:
function ev.onServerMessage(color, text)
    if text:find('Принял предложение работать на вас!') then
        nick, byid = text:match('(.-)%[(%d+)%] Принял предложение работать на вас!')
        sampAddChatMessage("Игрок " .. nick .. "[" .. byid .. "]" .. " был успешно принят.", color)
    elseif text:match('Игрок отказался.') then
        sampAddChatMessage("Сам напишешь текст.", color)
    end
end
Можно конечно ловить ник и айди когда ты предлогаешь работать, тогда при отказе можно написать ник и айди игрока который оказался. Будет почти так же как в примере выше. Только нужно добавить ещё одно условие if для того что бы вписать ник и айди в переменные
 

Fasmin

Участник
Автор темы
112
2
ну а чучуть подумать головой не?

луа:
function ev.onServerMessage(color, text)
    if text:find('Принял предложение работать на вас!') then
        nick, byid = text:match('(.-)%[(%d+)%] Принял предложение работать на вас!')
        sampAddChatMessage("Игрок " .. nick .. "[" .. byid .. "]" .. " был успешно принят.", color)
    elseif text:match('Игрок отказался.') then
        sampAddChatMessage("Сам напишешь текст.", color)
    end
end


Можно конечно ловить ник и айди когда ты предлогаешь работать, тогда при отказе можно написать ник и айди игрока который оказался. Будет почти так же как в примере выше. Только нужно добавить ещё одно условие if для того что бы вписать ник и айди в переменные
я себе голову ломаl, какой думать хд. а так спасиб
 
  • Нравится
Реакции: Dozor