Эксклюзив ASI Screenshot

MISTER_GONWIK

Всефорумный гонщик
Автор темы
Всефорумный модератор
1,130
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
  • Исправлено создание пустых папок при переключении режима (теперь папки создаются только при сохранении скриншота).
  • Исправлена проблема с сохранением скриншотов по несуществующему пути (к примеру во время работы удалить папку, в которую на данный момент сохранялись скриншоты).
  • Исправлено сохранение конфига при смене стиля оповещений, а также чтение текущего значения сортировки.
 

Вложения

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

diedydayx

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

Carrentine

vk.me/carrentine
Проверенный
548
370
Хуки снимаются при выгрузке? Просто крашит чет как выхожу.
 

Double Tap Inside

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

NarutoUA

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

MISTER_GONWIK

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