- 1,297
- 734
- Версия MoonLoader
- .026-beta
Код:
[ML] (error) SCRIPT_NAME: cannot resume non-suspended coroutine
stack traceback:
[C]: in function 'resume'
D:\Games\okolo stok gta\moonloader\lib\copas.lua:560: in function '_doTick'
D:\Games\okolo stok gta\moonloader\lib\copas.lua:638: in function 'addthread'
D:\Games\okolo stok gta\moonloader\SCRIPT_NAME.lua:754: in function 'httpRequest'
D:\Games\okolo stok gta\moonloader\SCRIPT_NAME.lua:876: in function <D:\Games\okolo stok gta\moonloader\SCRIPT_NAME.lua:872>
[ML] (error) SCRIPT_NAME: Script died due to an error. (1CA52E04)
Lua:
local response, code, headers, status = httpRequest("https://brightside.loc/get.php?"..httpBuildQuery(params)) -- 876
Lua:
local function httpRequest(request, body, handler) -- copas.http
-- start polling task
if not copas.running then
copas.running = true
lua_thread.create(function()
wait(0)
while not copas.finished() do
local ok, err = copas.step(0)
if ok == nil then error(err) end
wait(0)
end
copas.running = false
end)
end
-- do request
if handler then
return copas.addthread(function(r, b, h)
copas.setErrorHandler(function(err) h(nil, err) end)
h(http.request(r, b))
end, request, body, handler)
else
local results
local thread = copas.addthread(function(r, b) -- 754
copas.setErrorHandler(function(err) results = {nil, err} end)
results = table.pack(http.request(r, b))
end, request, body)
while coroutine.status(thread) ~= 'dead' do wait(0) end
return table.unpack(results)
end
end
httpRequest вызывается внутри отдельного потока в бесконечном цикле с задержкой 2500Полный код показывать не буду, там куча проверок, накидаю пример:
Lua:
lua_thread.create(function()
while true do
local response, code, header, status = httpRequest()
if response then
-- Куча проверок на нужный контент внутри response
end
wait(2500)
end
end)
Если условия хотя бы одной проверки выполняются - то делаю
break.Дальнейший код производит нужные махинации.
Изначально все отлично отправляется, ответ приходит, проверки работают, но потом при очередном запросе (при этом несколько запросов до этого успешно выполняется) происходит ошибка.
Lua:
[19:40:54.289096] (script) SCRIPT: send request to server
[19:40:54.602259] (script) SCRIPT: request succ got
[19:40:57.105325] (script) SCRIPT: send request to server
[19:40:57.418155] (script) SCRIPT: request succ got
[19:40:59.923948] (script) SCRIPT: send request to server
[19:41:00.244120] (script) SCRIPT: request succ got
[19:41:02.747553] (script) SCRIPT: send request to server
[19:41:02.752540] (error) SCRIPT: cannot resume non-suspended coroutine
stack traceback:
[C]: in function 'resume'
D:\Games\okolo stok gta\moonloader\lib\copas.lua:560: in function '_doTick'
D:\Games\okolo stok gta\moonloader\lib\copas.lua:638: in function 'addthread'
D:\Games\okolo stok gta\moonloader\SCRIPT.lua:754: in function 'httpRequest'
D:\Games\okolo stok gta\moonloader\SCRIPT.lua:876: in function <D:\Games\okolo stok gta\moonloader\SCRIPT.lua:872>
[19:41:02.752540] (error) SCRIPT: Script died due to an error. (1CA52E04)