Эксклюзив ASI Screenshot

MISTER_GONWIK

Всефорумный гонщик
Автор темы
Всефорумный модератор
1,142
1,295
Screenshot

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


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

Предупреждения по работе
  • Скриншот не сохранится, если игра в оконном режиме и часть окна выходит за рамки экрана
  • Если вы используете анти-паузу (игра не уходит на паузу, если её свернуть) и имеется скрипт, делающий автоматически скриншоты, то они не сохранятся из-за потери фокуса
  • Плагин имеет поддержку следующих версий SA-MP - 0.3.7R1, 0.3.7R2, 0.3.7R3-1, 0.3.7R4, на других версиях будет работать в режиме одиночной игры

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


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

Зависимости
gta_sa.exe версии US1.0
Asi loader
Установка
Закинуть в корневую папку игры
Благодарности
Выражаю огромную благодарность и говорю спасибо следующим людям:
  1. FYP - за помощь на протяжении всего срока разработки
  2. EvgeN 1137 - помощь в тестах и вопросах дизайна
  3. at. - помощь в тестах и вопросах дизайна
  4. sanєk - огромнейшая помощь в тестах и вопросах дизайна
  5. Disorder - помощь в тестах
Использование плагина для создания скриншотов из 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
15.12.2019
  • Исправлено создание пустых папок при переключении режима (теперь папки создаются только при сохранении скриншота).
  • Исправлена проблема с сохранением скриншотов по несуществующему пути (к примеру во время работы удалить папку, в которую на данный момент сохранялись скриншоты).
  • Исправлено сохранение конфига при смене стиля оповещений, а также чтение текущего значения сортировки.
 

Вложения

Последнее редактирование:

mentxl

Новичок
14
2
отличный скрипт, именно этого мне и нехватало, фаст скриншот совсем не то, фриз убирает, но название совсем непонятное
 

poletaev.

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

Double Tap Inside

Известный
Проверенный
634
288
Скрины сохраняются в два раза быстрее.
На глаз стандартный снимает за 1 сек., плагином за 400 мс
Видеокарта древняя и встроенная.
2.PNG1.PNG
 

NarutoUA

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

MISTER_GONWIK

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