Привязка скрипта

Ricardo_Miloss

Участник
Автор темы
40
3
Версия MoonLoader
Другое
Lua:
    repeat wait(0) until isSampAvailable()
        local request = requests.get('pastebin')
        local nick = sampGetPlayerNickname(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)))
        local function res()
            for n in request.text:gmatch('[^\r\n]+') do
                if nick:find(n) then
                    msg(nick:find(n))
                    msg('Скрипт запущен, у вас есть подтверждение!', -1)
                end
            end
            return false
        end
        if not res() then
            msg('Скрипт не был запущен, у вас нет подтверждения!', -1)
            thisScript():unload()
        end
Почему срабатывает обе части кода если ник находит? Работает и local function res() и if not res() then. Если ника нету в пасте то работает корректно, если есть то обе части срабатывают
 
Решение
после вывода сообщения о том, что скрипт запущен, return true добавь

Потому что код срабатывает мгновенно, а твой http запрос приходит через время. Тебе нужно ждать, пока http запрос придет, а уже потом сверять ник.
requests сам по себе фризит скрипт, пока не вернётся ответ :/

в этом случае, кста, лучше бы downloadUrlToFile использовал

Rice.

Известный
Модератор
1,753
1,662
Lua:
    repeat wait(0) until isSampAvailable()
        local request = requests.get('pastebin')
        local nick = sampGetPlayerNickname(select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)))
        local function res()
            for n in request.text:gmatch('[^\r\n]+') do
                if nick:find(n) then
                    msg(nick:find(n))
                    msg('Скрипт запущен, у вас есть подтверждение!', -1)
                end
            end
            return false
        end
        if not res() then
            msg('Скрипт не был запущен, у вас нет подтверждения!', -1)
            thisScript():unload()
        end
Почему срабатывает обе части кода если ник находит? Работает и local function res() и if not res() then. Если ника нету в пасте то работает корректно, если есть то обе части срабатывают
Потому что код срабатывает мгновенно, а твой http запрос приходит через время. Тебе нужно ждать, пока http запрос придет, а уже потом сверять ник.
 

moreveal

Известный
Модератор
946
666
после вывода сообщения о том, что скрипт запущен, return true добавь

Потому что код срабатывает мгновенно, а твой http запрос приходит через время. Тебе нужно ждать, пока http запрос придет, а уже потом сверять ник.
requests сам по себе фризит скрипт, пока не вернётся ответ :/

в этом случае, кста, лучше бы downloadUrlToFile использовал
 
  • Нравится
Реакции: Rice.

Ricardo_Miloss

Участник
Автор темы
40
3
после вывода сообщения о том, что скрипт запущен, return true добавь


requests сам по себе фризит скрипт, пока не вернётся ответ :/

в этом случае, кста, лучше бы downloadUrlToFile использовал
Помогло, спасибо большое, насчет downoloadUrlToFile пробовал, не получилось, бросил и так сделал)
 

Rice.

Известный
Модератор
1,753
1,662
после вывода сообщения о том, что скрипт запущен, return true добавь


requests сам по себе фризит скрипт, пока не вернётся ответ :/

в этом случае, кста, лучше бы downloadUrlToFile использовал
да я отвечал с мыслью, что у него асинхронный запрос