- 1,278
- 720
- Версия 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)