Вопрос Вопрос по поводу рендера (renderer.png,rgba)

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
1 Ноя 2021
Сообщения
129
Реакции
19
Код:
Expand Collapse Copy
local http = require'gamesense/http'
local renderer = renderer

local image_url = "гитхаб ссылка"
local image_path = "csgo/test.png" -- cs folder
local texture_id = nil

-- Проверка: текущая директория игры
print("Загрузка изображения через HTTP...")

http.get(image_url, function(success, response)
    print("http.get завершен.")
    if not success then
        print("Ошибка: не удалось выполнить запрос")
        return
    end

    if response.status ~= 200 then
        print("HTTP ошибка: " .. response.status)
        return
    end

    -- Проверка первых байтов PNG
    local header = string.sub(response.body, 1, 8)
    if header ~= "\137PNG\r\n\26\n" then
        print("Файл не начинается с сигнатуры PNG, получено:", header)
        writefile("debug_response.txt", response.body) -- сохрани HTML в файл для отладки
        return
    end

    -- Записываем PNG в файл
    local success_write = pcall(function()
        writefile(image_path, response.body)
    end)

    if not success_write then
        print("Ошибка при записи PNG в файл: " .. image_path)
        return
    end

    print("PNG успешно записан в файл:", image_path)

    -- Читаем PNG из файла
    local file_data = nil
    local success_read = pcall(function()
        file_data = readfile(image_path)
    end)

    if not success_read or not file_data then
        print("Ошибка при чтении PNG из файла.")
        return
    end

    print("Файл прочитан. Попытка декодировать PNG...")

    local ok, rgba, w, h = pcall(function()
        return renderer.load_png(file_data)
    end)

    if not ok or not rgba then
        print("Ошибка при декодировании PNG.")
        return
    end

    local tex_ok, tex_id = pcall(function()
        return renderer.load_rgba(rgba, w, h)
    end)

    if not tex_ok or not tex_id then
        print("Не удалось загрузить текстуру.")
        return
    end

    texture_id = tex_id
    print("Текстура загружена. ID:", texture_id)
end)

client.set_event_callback("paint", function()
    if texture_id then
        renderer.texture(texture_id, 100, 100, 64, 64, 255, 255, 255, 255)
    else
        renderer.text(100, 100, 255, 0, 0, 255, "-", 0, "Ожидание загрузки PNG...")
    end
end)

При запуске (там норм ссылка на гит для загрузки)
он выдает мне через client.log в консоль такую отладку:

[gamesense] http.get завершен.
[gamesense] PNG успешно записан в файл:csgo/softiq_test.png
[gamesense] Файл прочитан. Попытка декодировать PNG...
[gamesense] Ошибка при декодировании PNG.
Как исправить?
 
Назад
Сверху Снизу