Поиск текста в чате и дальнейш. действие при включенной "галочке"

w99zzl1

Участник
Автор темы
80
7
Версия MoonLoader
.026-beta
Привет, написал "Рп отыгровку" на приглашение в семью на Advance RP. Т.е. В окне скажем "ХЕЛПЕРА" есть "галочка" вкл/выкл, и при ВКЛ, при отправке мною команды /finvite id скрипт пишет рп отыгровку. Я решил добавить отыгровку на случай принятия/отклонения приглашения, я сделал это с помощью if text find "принял" "отклонил", но отыгровка принятия/отклонения срабатывает и при выключенной галочки. Вот отрывки кода:


(функция поиска текста принятия или отклонения приглашения и отправка "отыгровки")
Lua:
-- тут функция main, в других почему то не работает...

sampev.onServerMessage = function(color, text)

        local startTime = os.time()

        lua_thread.create(function()

            while true do

                if os.time() - startTime >= 5 then

                    break

                end

                if text:find("отклонил ваше приглашение") then

                    wait(1200)

                    sampSendChat("/me разочаровано посмотрел на человека")

                    wait(1200)

                    sampSendChat("/do Лицо стало печальным.")

                    wait(1200)

                    sampSendChat("/me отвел взгляд от человека")

                    break

                end

                if text:find("принял ваше приглашение") then

                    wait(1200)

                    sampSendChat("/me пристально посмотрел на человека")

                    wait(1200)

                    sampSendChat("/me протянул руку человеку напротив")

                    wait(1200)

                    sampSendChat("/todo Покрепче сжав руку*Теперь ты с нами брат.")

                    break

                end

                wait(0)

            end

        end)

    end



    while true do

        wait(0)

        if autoAcceptFamily[0] then

            autoInviteToFamily() -- на это не обращайте внимание, у меня в коде есть "авто приглашение в семью"

        end

    end

end

функция отыгровки:
function onFinvite(args)
    local targetID = tonumber(args)
    if targetID then
        if rpInviteFamily[0] then

            sampSendChat(string.format('/me приглашает %s в семью', sampGetPlayerNickname(targetID))) -- хреновая отыгровка XD но пока так, тоже не обращайте внимание
            sampSendChat(string.format('/me благодарит %s за вступление в семью', sampGetPlayerNickname(targetID)))
        end
        sampSendChat(string.format('/finvite %d', targetID))
        lastInviteTime = os.time()
    else
        sampAddChatMessage("[Family Helper]: {FFFFFF}Неверный формат команды. Используйте: {007Fb4}/finvite [id]", 0x007FB4)
    end
end

Вроде всё что нужно скинул... Буду благодарен за помощь!
 
Решение
Привет, написал "Рп отыгровку" на приглашение в семью на Advance RP. Т.е. В окне скажем "ХЕЛПЕРА" есть "галочка" вкл/выкл, и при ВКЛ, при отправке мною команды /finvite id скрипт пишет рп отыгровку. Я решил добавить отыгровку на случай принятия/отклонения приглашения, я сделал это с помощью if text find "принял" "отклонил", но отыгровка принятия/отклонения срабатывает и при выключенной галочки. Вот отрывки кода:


(функция поиска текста принятия или отклонения приглашения и отправка "отыгровки")
Lua:
-- тут функция main, в других почему то не работает...

sampev.onServerMessage = function(color, text)

        local startTime = os.time()

        lua_thread.create(function()

            while true do

                if os.time() -...

KyRDa

Участник
86
44
Привет, написал "Рп отыгровку" на приглашение в семью на Advance RP. Т.е. В окне скажем "ХЕЛПЕРА" есть "галочка" вкл/выкл, и при ВКЛ, при отправке мною команды /finvite id скрипт пишет рп отыгровку. Я решил добавить отыгровку на случай принятия/отклонения приглашения, я сделал это с помощью if text find "принял" "отклонил", но отыгровка принятия/отклонения срабатывает и при выключенной галочки. Вот отрывки кода:


(функция поиска текста принятия или отклонения приглашения и отправка "отыгровки")
Lua:
-- тут функция main, в других почему то не работает...

sampev.onServerMessage = function(color, text)

        local startTime = os.time()

        lua_thread.create(function()

            while true do

                if os.time() - startTime >= 5 then

                    break

                end

                if text:find("отклонил ваше приглашение") then

                    wait(1200)

                    sampSendChat("/me разочаровано посмотрел на человека")

                    wait(1200)

                    sampSendChat("/do Лицо стало печальным.")

                    wait(1200)

                    sampSendChat("/me отвел взгляд от человека")

                    break

                end

                if text:find("принял ваше приглашение") then

                    wait(1200)

                    sampSendChat("/me пристально посмотрел на человека")

                    wait(1200)

                    sampSendChat("/me протянул руку человеку напротив")

                    wait(1200)

                    sampSendChat("/todo Покрепче сжав руку*Теперь ты с нами брат.")

                    break

                end

                wait(0)

            end

        end)

    end



    while true do

        wait(0)

        if autoAcceptFamily[0] then

            autoInviteToFamily() -- на это не обращайте внимание, у меня в коде есть "авто приглашение в семью"

        end

    end

end

функция отыгровки:
function onFinvite(args)
    local targetID = tonumber(args)
    if targetID then
        if rpInviteFamily[0] then

            sampSendChat(string.format('/me приглашает %s в семью', sampGetPlayerNickname(targetID))) -- хреновая отыгровка XD но пока так, тоже не обращайте внимание
            sampSendChat(string.format('/me благодарит %s за вступление в семью', sampGetPlayerNickname(targetID)))
        end
        sampSendChat(string.format('/finvite %d', targetID))
        lastInviteTime = os.time()
    else
        sampAddChatMessage("[Family Helper]: {FFFFFF}Неверный формат команды. Используйте: {007Fb4}/finvite [id]", 0x007FB4)
    end
end

Вроде всё что нужно скинул... Буду благодарен за помощь!
отыгровка принятия/отклонения срабатывает и при выключенной галочки
Просто добавь проверку состояния галочки
Lua:
function main()

    while true do

        wait(0)

        if autoAcceptFamily[0] then

            autoInviteToFamily() -- на это не обращайте внимание, у меня в коде есть "авто приглашение в семью"

        end

    end

end

function sampev.onServerMessage(color, text)
    if галочка включена then
        if text:find("отклонил ваше приглашение") then
            lua_thread.create(function()
                wait(1200)

                sampSendChat("/me разочаровано посмотрел на человека")

                wait(1200)

                sampSendChat("/do Лицо стало печальным.")

                wait(1200)

                sampSendChat("/me отвел взгляд от человека")
            end)
        elseif text:find("принял ваше приглашение") then
            lua_thread.create(function()

                wait(1200)

                sampSendChat("/me пристально посмотрел на человека")

                wait(1200)

                sampSendChat("/me протянул руку человеку напротив")

                wait(1200)

                sampSendChat("/todo Покрепче сжав руку*Теперь ты с нами брат.")

            end)
        end
    end
end
Я немного переделал твой код, теперь он будет пооптимизированней. Считаю в onServerMessage не нужен цикл, функция ведь сама вызывается при получении сообщения в чате
 

w99zzl1

Участник
Автор темы
80
7
Просто добавь проверку состояния галочки
Lua:
function main()

    while true do

        wait(0)

        if autoAcceptFamily[0] then

            autoInviteToFamily() -- на это не обращайте внимание, у меня в коде есть "авто приглашение в семью"

        end

    end

end

function sampev.onServerMessage(color, text)
    if галочка включена then
        if text:find("отклонил ваше приглашение") then
            lua_thread.create(function()
                wait(1200)

                sampSendChat("/me разочаровано посмотрел на человека")

                wait(1200)

                sampSendChat("/do Лицо стало печальным.")

                wait(1200)

                sampSendChat("/me отвел взгляд от человека")
            end)
        elseif text:find("принял ваше приглашение") then
            lua_thread.create(function()

                wait(1200)

                sampSendChat("/me пристально посмотрел на человека")

                wait(1200)

                sampSendChat("/me протянул руку человеку напротив")

                wait(1200)

                sampSendChat("/todo Покрепче сжав руку*Теперь ты с нами брат.")

            end)
        end
    end
end
Я немного переделал твой код, теперь он будет пооптимизированней. Считаю в onServerMessage не нужен цикл, функция ведь сама вызывается при получении сообщения в чате
Спасибо, работает! А можно как то сделать, чтобы поиск текста работал только после команды /finvite в течении 5-10 сек после команды...), и как я только что увидел, сервер не пишет "игрок принял ваше предложение" там в чат семьи сразу пишет "Ник принял Ник2 в семью". Так вот, можете подсказать пожалуйста, как сделать чтобы текст искал не просто "принял" а искал слово, чтобы там был мой ник, слово "принял" ник приглашаемого игрока, а потом слово "в семью", или же просто сделать чтобы после команды /finvite скрипт в течении 5-10 секунд (ибо в дальнейшем будет кучу таких слов мелькать в чате) искал слово "принял" и отправлял отыгровку. Заранее Спасибо,

Просто добавь проверку состояния галочки
Lua:
function main()

    while true do

        wait(0)

        if autoAcceptFamily[0] then

            autoInviteToFamily() -- на это не обращайте внимание, у меня в коде есть "авто приглашение в семью"

        end

    end

end

function sampev.onServerMessage(color, text)
    if галочка включена then
        if text:find("отклонил ваше приглашение") then
            lua_thread.create(function()
                wait(1200)

                sampSendChat("/me разочаровано посмотрел на человека")

                wait(1200)

                sampSendChat("/do Лицо стало печальным.")

                wait(1200)

                sampSendChat("/me отвел взгляд от человека")
            end)
        elseif text:find("принял ваше приглашение") then
            lua_thread.create(function()

                wait(1200)

                sampSendChat("/me пристально посмотрел на человека")

                wait(1200)

                sampSendChat("/me протянул руку человеку напротив")

                wait(1200)

                sampSendChat("/todo Покрепче сжав руку*Теперь ты с нами брат.")

            end)
        end
    end
end
Я немного переделал твой код, теперь он будет пооптимизированней. Считаю в onServerMessage не нужен цикл, функция ведь сама вызывается при получении сообщения в чате
Спасибо, работает! А можно как то сделать, чтобы поиск текста работал только после команды /finvite в течении 5-10 сек после команды...), и как я только что увидел, сервер не пишет "игрок принял ваше предложение" там в чат семьи сразу пишет "Ник принял Ник2 в семью". Так вот, можете подсказать пожалуйста, как сделать чтобы текст искал не просто "принял" а искал слово, чтобы там был мой ник, слово "принял" ник приглашаемого игрока, а потом слово "в семью", или же просто сделать чтобы после команды /finvite скрипт в течении 5-10 секунд (ибо в дальнейшем будет кучу таких слов мелькать в чате) искал слово "принял" и отправлял отыгровку. Заранее Спасибо,
 

KyRDa

Участник
86
44
искал слово, чтобы там был мой ник, слово "принял" ник приглашаемого игрока, а потом слово "в семью",
Lua:
text:find(sampGetPlayerNickname(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED))).." принял .+ в семью")

после команды /finvite скрипт в течении 5-10 секунд искал слово "принял" и отправлял отыгровку.
Взяв переменную lastInviteTime из функции onFinvite
Lua:
function sampev.onServerMessage(color, text)
    if галочка включена and os.time() - lastInviteTime <= 10 then -- в течение 10 секунд сообщения будут проверятся
        if text:find("принял") then
            -- code
        end
    end
end
 
  • Нравится
Реакции: w99zzl1