Эксклюзив ASI Screenshot

MISTER_GONWIK

Всефорумный гонщик
Автор темы
Всефорумный модератор
1,256
1,735
Версия SA-MP
  1. Любая
Screenshot

Модификация привносит ряд улучшений в функцию скриншота в SA-MP, главное из которых - это оптимизация создания скриншотов, они сохраняются значительно быстрее, избавляя от долгой раздражающей задержки игры. Уведомления о сохранении скриншотов теперь не засоряют чат, а красиво выводятся в углу экрана и не сохраняются на изображении. Файлы скриншотов сортируются по папкам с ником игрока, адресом сервера и дате, эта функция настраивается и может быть отключена.
Для разработчиков модов есть API, который предлагает возможности написания скриптов для автоматического создания скриншотов с высоким уровнем контроля.
Плагин полностью совместим с одиночной игрой и поддерживает те же возможности без SA-MP.


Возможности плагина
  • Сохранение скриншотов c сортировкой по папкам (в одиночной игре сортировки нет, сохраняется в GTA San Andreas User Files\Gallery\..):
    • Как раньше (GTA San Andreas User Files\SAMP\screens\..)
    • По текущему серверу (GTA San Andreas User Files\SAMP\screens\ip_port\..)
    • По игровому нику (GTA San Andreas User Files\SAMP\screens\nickname\..)
    • По дате
      • Год (GTA San Andreas User Files\SAMP\screens\year\..)
      • Месяц (GTA San Andreas User Files\SAMP\screens\month\..)
      • День (GTA San Andreas User Files\SAMP\screens\day\..)
    • Пример: если включить "сервер", "год" и "месяц", конечный путь будет - (GTA San Andreas User Files\SAMP\screens\ip_port\year\month\..), приоритет папок учитывается по порядку.
  • Экспортирование вспомогательных функций для написания различного рода скриптов-автоскриншотов

Предупреждения по работе
  • Если вы используете анти-паузу (игра не уходит на паузу, если теряет фокус окна) и имеется скрипт, делающий автоматически скриншоты, то они не сохранятся, если окно игры будет свёрнуто

Графические элементы
Очередь оповещений
Заменяет стандартные сообщения на отдельные оповещения.
Оповещения имеют 6 стилей отображения.
Очередь оповещений:
45450


Стили оповещений:
45451
Меню (находится в игровом меню, справа в нижнем углу)
Открывается нажатием ЛКМ по иконке, закрывается повторным нажатием ЛКМ либо ESC.
Здесь вы можете изменить стиль отображения оповещений и сменить режим сохранения скриншотов.
Меню:
45452

Зависимости
gta_sa.exe версии US1.0
Asi loader 1.3 (скачивать здесь)
Установка
Закинуть в корневую папку игры
Благодарности
Выражаю огромную благодарность и говорю спасибо следующим людям:
  1. FYP - за помощь на протяжении всего срока разработки
  2. EvgeN 1137 - помощь в тестах и вопросах дизайна
  3. at. - помощь в тестах и вопросах дизайна
  4. sanєk - огромнейшая помощь в тестах и вопросах дизайна
  5. Disorder - помощь в тестах
  6. TheVitek - помощь в тестах
Использование плагина для создания скриншотов из Lua скриптов.
Для работы с плагином предоставляется модуль screenshot.lua
Если создание скриншота является второстепенной задачей для вашего скрипта, используйте проверку на успешную загрузку модуля - pcall(require, 'lib.screenshot'), иначе, при отсутствии Screenshot.asi, ваш скрипт завершится с ошибкой.
В остальных случаях проверка не требуется. Нет плагина - нет смысла работать.
Lua:
local screenshotIsAvailable, screenshot = pcall(require, 'lib.screenshot')
function main()
    ...

    sampRegisterChatCommand('safes', function()
        if screenshotIsAvailable then
            screenshot.request()
        else
            sampAddChatMessage('screenshot library is not available', -1)
        end
    end)

    ...
end

Модуль предоставляет следующие методы
  • getPluginVersion() - возвращает версию плагина (Screenshot.asi)
  • getUserDirectoryPath() - возвращает директорию игры в документах (../GTA San Andreas User Files)
  • request() - запрос на создание обычного скриншота (как на F8)
  • requestEx(path, filename) - запрос на создание и сохранение скриншота в указанную директорию
    • path - путь, по которому требуется сохранить скриншот (если путь не существует, плагин создаст), можно указать абсолютный или относительный путь. Относительный путь начинается с папки ../GTA San Andreas User Files/App screens/..
    • filename - имя файла скриншота (указывать расширение "png" не требуется)
Пример использования:
Lua:
local screenshot = require 'lib.screenshot'
function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end

    sampRegisterChatCommand('savescreen', function(fileName)
        if fileName:len() > 0 then
            screenshot.requestEx('example', fileName) -- путь сохранения будет: ../GTA San Andreas User Files/App screens/example/
        else
            screenshot.request()
        end
    end)

    wait(-1)
end
26.04.2020
  • Полностью переделана система сохранения скриншота, что позволило избавиться от следующих проблем:
    • Скриншот не мог сохраниться, если окно игры находилось за границей экрана (хоть немного даже если выходило) или терялся фокус
    • Ощутимые фризы на слабых компьютерах (до 1 секунды)
  • Автоматическое определение сампа (тестировал на версиях 0.3C, 0.3E, 0.3X, 0.3Z, 0.37R1/R3-1/R4, 0.3DL - работает без проблем)
  • Внутренняя оптимизация всего плагина

15.12.2019
  • Исправлено создание пустых папок при переключении режима (теперь папки создаются только при сохранении скриншота).
  • Исправлена проблема с сохранением скриншотов по несуществующему пути (к примеру во время работы удалить папку, в которую на данный момент сохранялись скриншоты).
  • Исправлено сохранение конфига при смене стиля оповещений, а также чтение текущего значения сортировки.
 

Вложения

  • lib.7z
    457 байт · Просмотры: 5,040
  • examples.7z
    1.4 KB · Просмотры: 4,262
  • Screenshot.asi
    600.5 KB · Просмотры: 8,924
Последнее редактирование:

mentxl

Новичок
22
9
отличный скрипт, именно этого мне и нехватало, фаст скриншот совсем не то, фриз убирает, но название совсем непонятное
 
  • Нравится
Реакции: xionerme, atomlin и FYP

Carrentine

Потрачен
570
460
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Хуки снимаются при выгрузке? Просто крашит чет как выхожу.
 

Double Tap Inside

Известный
Проверенный
1,897
1,237
Скрины сохраняются в два раза быстрее.
На глаз стандартный снимает за 1 сек., плагином за 400 мс
Видеокарта древняя и встроенная.
2.PNG1.PNG
 
  • Нравится
Реакции: Nerykery и tревор..

NarutoUA

NarutoUA
BH Team
692
1,535
Можно было увеличить скорость скриншота не меняя способ захвата, он вообще моментально делается, лагает из-за конвертации в пнг и сохранение на диске (в мта это решили впихнув в отдельный поток). Кста если ты фронтбуффер брал то скриншот может отвалится если включен анти-алиасинг в настройках игры. Я не понимаю зачем этот плагин если в нём нет нужных фич как захват области, сохранение скрина в буффер обмена или залив на какойто хостинг. Кароч было бы круто если бы он работал как lightshot или sharex.
 

MISTER_GONWIK

Всефорумный гонщик
Автор темы
Всефорумный модератор
1,256
1,735
Можно было увеличить скорость скриншота не меняя способ захвата, он вообще моментально делается, лагает из-за конвертации в пнг и сохранение на диске (в мта это решили впихнув в отдельный поток). Кста если ты фронтбуффер брал то скриншот может отвалится если включен анти-алиасинг в настройках игры. Я не понимаю зачем этот плагин если в нём нет нужных фич как захват области, сохранение скрина в буффер обмена или залив на какойто хостинг. Кароч было бы круто если бы он работал как lightshot или sharex.
всё впереди, планов много.