- 1,298
- 733
- Версия 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
endhttpRequest вызывается внутри отдельного потока в бесконечном цикле с задержкой 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) 
				
		 
 
		 
 
		 
 
		 
					
				 
						
					 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		