downloadUrlToFile

Статус
В этой теме нельзя размещать новые ответы.

papercut

Известный
Автор темы
125
24
Версия SA-MP
  1. Любая
Всем привет! Снова я, тот самый тупой дебил, которому в голову лезут всякие странные идеи. На этот раз в мою светлую голову пришла идея запросов без socket(не бейте). Дело в том, что скрипт выполняется 1 раз при старте, а после того, как пишу в чат /test, умирает со словами
Код:
attempt to call a nil value
stack traceback:
Script died due to an error. (10C111D4)

Хочу узнать, дело в том, что я криво что-то сделал(хотя другие скрипты до этого писал, все работают), либо это особенность функции - вызываться всегда в первую очередь и лишь 1 раз.
Вот, собсна, код:
require "lib.moonloader"
local dlstatus = require('moonloader').download_status

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand("test", req())
    wait(-1)
end

function req()
    local fpath = os.getenv('TEMP') .. '\\HLtemp.json'
    downloadUrlToFile('http://tbans/?act=test', fpath, function(id, status, p1, p2)
        if status == dlstatus.STATUS_ENDDOWNLOADDATA then
            local f = io.open(fpath, 'r')
            if f then
                local j = decodeJson(f:read('*a'))
                if j and j.test then
                    sampAddChatMessage(j.test, 0xaaaaaa)
                end
            end
        end
    end)
end

По поводу сервера - все нормально, дело не в нем, первый раз срабатывает же....
 
Решение
Всем привет! Снова я, тот самый тупой дебил, которому в голову лезут всякие странные идеи. На этот раз в мою светлую голову пришла идея запросов без socket(не бейте). Дело в том, что скрипт выполняется 1 раз при старте, а после того, как пишу в чат /test, умирает со словами
Код:
attempt to call a nil value
stack traceback:
Script died due to an error. (10C111D4)

Хочу узнать, дело в том, что я криво что-то сделал(хотя другие скрипты до этого писал, все работают), либо это особенность функции - вызываться всегда в первую очередь и лишь 1 раз.
Вот, собсна, код:
require "lib.moonloader"
local dlstatus = require('moonloader').download_status

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand("test", req())...

™ ChipFamily

По ту сторону надежды.
5,143
1,985
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
В раздел вопросов иди, зачем ты снова отдельную тему создаешь, от этого тебе быстрей не ответят..
 

ufdhbi

Известный
Проверенный
1,460
866
Всем привет! Снова я, тот самый тупой дебил, которому в голову лезут всякие странные идеи. На этот раз в мою светлую голову пришла идея запросов без socket(не бейте). Дело в том, что скрипт выполняется 1 раз при старте, а после того, как пишу в чат /test, умирает со словами
Код:
attempt to call a nil value
stack traceback:
Script died due to an error. (10C111D4)

Хочу узнать, дело в том, что я криво что-то сделал(хотя другие скрипты до этого писал, все работают), либо это особенность функции - вызываться всегда в первую очередь и лишь 1 раз.
Вот, собсна, код:
require "lib.moonloader"
local dlstatus = require('moonloader').download_status

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand("test", req())
    wait(-1)
end

function req()
    local fpath = os.getenv('TEMP') .. '\\HLtemp.json'
    downloadUrlToFile('http://tbans/?act=test', fpath, function(id, status, p1, p2)
        if status == dlstatus.STATUS_ENDDOWNLOADDATA then
            local f = io.open(fpath, 'r')
            if f then
                local j = decodeJson(f:read('*a'))
                if j and j.test then
                    sampAddChatMessage(j.test, 0xaaaaaa)
                end
            end
        end
    end)
end

По поводу сервера - все нормально, дело не в нем, первый раз срабатывает же....
убери кавычки в регистрации команды, т.е. sampRegisterChatCommand("test", req)
 
Статус
В этой теме нельзя размещать новые ответы.