Documentation

[AutoDemo] Simple Web Uploader

Информация от разработчика плагина - kruzya

Отлично, ты открыл этот файл, значит готов погрузиться в полноценный процесс установки плагина автозагрузки демок.

Он из себя представляет несколько слабо связанных подсистем (если тебе интересно, можешь прочитать; если нет - пропускай весь этот абзац смело):
1. Расширение "REST in Pawn". Позволяет обращаться на сайт со стороны плагина.
2. Расширение "SourceTV Manager". Управление ботом SourceTV/GOTV и процессом записи.
3. Плагин "[AutoDemo] Core". Управляет процессом записи через STV Manager, формирует более понятные сторонним скриптам и сайтам метаданные о демке в формате JSON с помощью REST in Pawn. Ядро всей системы, фактически.
4. Плагин "[AutoDemo] Event Manager". Общается с ядром, начинает запись по достижении некоторых настроенных условий (например, на сервере раунд начался с 4-мя игроками), и останавливает, когда надо. Так же сообщает ядру об основных событиях на демке, по типу начала и конца раунда, а так же сообщений в чате.
5. Плагин "[AutoDemo] Simple Web Uploader". Реализует автозагрузку демки на веб-сайт с помощью HTTP/HTTPS-протокола и технологии "Chunked Upload": демка разбивается на несколько файлов, а веб её сам собирает обратно. Это сделано для того, чтобы обходить всевозможные ограничения веб-хостингов на размер файла.

Все эти компоненты вложены в архив, по возможности, конечно, лучше всего скачать актуальную версию из Интернета (могут быть исправлены какие-то ошибки), ссылки в самом низу файла. Плагины собраны под SM 1.10. Если у тебя версия старее - придётся самому пересобрать, ну или можешь написать мне. Контакты я оставил так же внизу.

Установка (короткая)

1. Скопируй содержимое папки upload_X (где X - версия SM) на свой сервер. В этой папке находятся расширения, которые зависят от версии SM, на которой будут запускаться.
2. Скопируй содержимое папки upload на свой сервер. В этой папке находятся плагины и расширения, которым всё равно, на какой версии SM запускаться они будут.
3. Зайди в папку /cfg/sourcemod на сервере, найди файл autodemo_simpleuploader.cfg и пропиши в нём ссылку на "URL для API", а так же "Ключ API" (у каждого сервера будет свой ключ, это важно). Не рекомендую трогать "ограничение скорости загрузки", если реальной необходимости в этом нет.
4. Перезапускай сервер.

Установка (полная, для экспертов)

1. Скачай все расширения и плагины по ссылкам ниже под свой SM.
2. Установи расширения путём банального копирования на сервер.
3. Скомпилируй нужные плагины (AutoDemo.sp, AutoDemo_EventManager.sp и AutoDemo_SimpleWebUploader.sp) под свою версию SourceMod. Это требуемый минимум для работы.
4. Загрузи их на сервер.
5. Перезагрузи сервер, убедись, что расширения загрузились и работают (sm exts list). Если их в списке нет - посмотри, что с самими плагинами (sm plugins list). Если расширения выбили ошибку, смотри секцию "Решение проблем (для экспертов)".
6. При первом старте, Simple Web Uploader сгенерирует конфиг по пути /cfg/sourcemod с именем autodemo_simpleuploader.cfg. В него необходимо прописать "URL для API" и "Ключ API" с сайта. У каждого сервера будет свой ключ, это важно!
7. Перезагрузи сервер ещё раз.
8. Настрой "поведение автозаписи", если оно тебе нужно. За это отвечает Event Manager, он регистрирует "консольные переменные" sm_autodemo_recordmode (режим записи: 0 - не записывать ничего; 1 - разбивать по картам (стандартное значение); 2 - разбивать на раунды) и sm_autodemo_minplayers (минимальное кол-во игроков для начала записи; стандартное значение 4). Их можно прописать в /cfg/server.cfg
9. Перезагрузи сервер снова.

Решение проблем (для экспертов)

- Если SourceTV Manager пишет ошибку, и в тексте присутствует "IBinTools":
Расширение установлено не для своей версии SM. На Гитхабе находятся сборки для 1.10, а в теме на AM можно найти ссылку на страницу со сборками под SM 1.11. Возможно где-то есть и для SM 1.9, но я бы не советовал заниматься некрофилией настолько без реальных причин на это.
- Если SourceTV Manager ругается на геймдату (Failed to get ... offset):
Геймдата изменилась, нужно обновить. Найти можно на Гитхабе/AM.

Ссылки на ресурсы

- REST in Pawn: https://github.com/ErikMinekus/sm-ripext/releases/latest
- SourceTV Manager: https://forums.alliedmods.net/showthread.php?t=280402
- [AutoDemo] Core: https://github.com/CrazyHackGUT/sm-autodemo
- [AutoDemo] Simple Web Uploader: https://github.com/Bubuni-Team/sm-kostildemo

Версии ресурсов в архиве

- REST in Pawn v1.3.1
- SourceTV Manager v1.1
- [AutoDemo] Core v1.4.0 Alpha 4
- [AutoDemo] Simple Web Uploader v0.2.0.2

Контакты разработчика

Обратите внимание, что помощь оказывается только пользователям лицензии, потому готовьтесь в случае вопросов как-то подтвержать факт наличия лицензии. Если Вы ранее писали в официальном чате GameCMS, и Вашу лицензию там кто-либо подтвердил, то я ничего спрашивать не буду на этот счёт; в противном случае поинтересуюсь доменом и попрошу внести небольшую никому не видную правку в шаблон, чтобы убедиться, что Вы - владелец.

- Telegram: @crazyhackgut
- HLmod: Kruzya

Благодарности

- Разработчикам Metamod: Source и SourceMod за предоставленные платформы для простой разработки под Source Engine
- Erik Minekus (a.k.a. DJ Tsunami) за расширение REST in Pawn
- peace-maker за расширение SourceTV Manager
- Сообществу HLmod.ru за двухлетнее тестирование [AutoDemo] Core, в частности пользователям Levels Ranks Web и лично Flames за более глубокое тестирование

Поддержать разработчика

Вы можете поддержать меня финансово, разработчика этого "пакета плагинов". Ведь вместо того, чтобы заниматься проектами, которые могли бы мне действительно принести некоторый доход, я занимался разработкой в общий доступ "[AutoDemo] Core" (который в последствии стал основой ещё для нескольких скриптов автодемок) и, в частности, "[AutoDemo] Simple Web Uploader".

Мои реквизиты всегда доступны по ссылке https://kruzya.me/donate-me
Финансовая поддержка в проектах подобного плана - это всегда важно.

Скачать плагин

autodemo.zip

Есть вопрос?