Список форумов http://forum.quake2.com.ru http://forum.quake2.com.ru
forum of russian quake2 portal
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Автоматическое создание скриншота с результатом в демке?

 
Начать новую тему   Ответить на тему    Список форумов http://forum.quake2.com.ru -> Проблемы и вопросы
Предыдущая тема :: Следующая тема  
Автор Сообщение
Amok[MEn]
lpw

   

Зарегистрирован: 14.08.2009
Сообщения: 62

СообщениеДобавлено: Пн Май 16, 2016 8:51 pm    Заголовок сообщения: Автоматическое создание скриншота с результатом в демке? Ответить с цитатой

Имеется 100500 демок *.dm2.
Нужно для каждой сделать скриншот с итоговой таблицей (результатами игры).

Хотелось бы по возможности автоматизировать процесс.

Использовал Q2PRO-клиент. Написал конфиг, который ставит timescale 10 (для ускорения проигрывания демки) и триггер, реагирующий на фразу "Timelimit hit" и создающий скриншот. Однако, нихера триггер не срабатывает. Как я понимаю, потому что нет сервера (этот же триггер отлично делает скрины, если запускать его на клиенте, который подключён к серверу - я на чемпах так делал все скрины на админском компьютере).

Подскажите куда копать? Может в других клиентах триггеры работают?

Если удасться забороть кваку, то далее можно будет написать bat-ничек, который будет сам по списку демок запускать кваку с конфигом и демой, делать скрин и переходить к следующей деме.
Вернуться к началу
Amok[MEn] is offline Посмотреть профиль Отправить личное сообщение
AlexJ
papa

   

Зарегистрирован: 02.10.2009
Сообщения: 471

СообщениеДобавлено: Вт Май 17, 2016 3:55 pm    Заголовок сообщения: Ответить с цитатой

обязательно скриншот? если только данные создавать со счетом, то проще написать парсер файла демки - в нем есть вся инфа о результатах.?
Вернуться к началу
AlexJ is offline Посмотреть профиль Отправить личное сообщение
AlexJ
papa

   

Зарегистрирован: 02.10.2009
Сообщения: 471

СообщениеДобавлено: Вт Май 17, 2016 4:04 pm    Заголовок сообщения: Ответить с цитатой

под r1q2:
timedemo 1 (ускоряем)
trigger "screenshot jpg" "Match ended."
map демка
после проигрывания демки пишет скрин
Вернуться к началу
AlexJ is offline Посмотреть профиль Отправить личное сообщение
Amok[MEn]
lpw

   

Зарегистрирован: 14.08.2009
Сообщения: 62

СообщениеДобавлено: Вт Май 17, 2016 5:38 pm    Заголовок сообщения: Ответить с цитатой

AlexJ писал(а):
обязательно скриншот? если только данные создавать со счетом, то проще написать парсер файла демки

Парсить тоже буду. Однако хочу скрин.
Вернуться к началу
Amok[MEn] is offline Посмотреть профиль Отправить личное сообщение
Amok[MEn]
lpw

   

Зарегистрирован: 14.08.2009
Сообщения: 62

СообщениеДобавлено: Вт Май 17, 2016 9:55 pm    Заголовок сообщения: Ответить с цитатой

AlexJ писал(а):
trigger "screenshot jpg" "Match ended."


Пашет. Только триггер должен быть обязательно с wildcard'ом.

И вот верный триггер:
Код:
trigger "timedemo 0;wait;wait;wait;wait;wait;screenshot" "Timelimit hit*"
Вернуться к началу
Amok[MEn] is offline Посмотреть профиль Отправить личное сообщение
Amok[MEn]
lpw

   

Зарегистрирован: 14.08.2009
Сообщения: 62

СообщениеДобавлено: Вт Май 17, 2016 10:03 pm    Заголовок сообщения: Ответить с цитатой

А кто объяснит, почему тригеры в демке работают в r1q2 и не работают в q2pro? У них же даже синтаксис одинаковый?

Я прав в том что q2pro считает *.dm2 "клиентской" демкой (сам q2pro говорит об этом в подсказке при попытке просмотреть *.dm2 командой demoplay) и как бы не считает серверные сообщения типа "Timelimit hit" за "настоящие" серверные? Т. е. для него они уже не серверные, а так, херня на палочке из прошлого? Smile
Вернуться к началу
Amok[MEn] is offline Посмотреть профиль Отправить личное сообщение
the_doom
papa

   

Зарегистрирован: 23.02.2007
Сообщения: 630
Откуда: Пермь

СообщениеДобавлено: Сб Май 21, 2016 2:21 am    Заголовок сообщения: Ответить с цитатой

по этой ссылке есть ответы на твои вопросы Smile
https://github.com/AndreyNazarov/q2pro/blob/924ff39aa48df1d6cd985b42a2fe5a60ff154030/src/client/parse.c#L939

_________________
Что от тебя не зависит, о том не следует и думать.
Вернуться к началу
the_doom is offline Посмотреть профиль Отправить личное сообщение
Amok[MEn]
lpw

   

Зарегистрирован: 14.08.2009
Сообщения: 62

СообщениеДобавлено: Вт Май 24, 2016 8:02 pm    Заголовок сообщения: Ответить с цитатой

the_doom писал(а):
по этой ссылке есть ответы на твои вопросы :)
на си это означает:
если (не cls.demo.playback) и (cl.serverstate не равно ss_broadcast)

Т. е. триггер сработает если всё это выражение TRUE. А значит переменные имеют значения:
cls.demo.playback = FALSE
и
cl.serverstate = TRUE и ss_broadcast = FALSE
либо же
cls.demo.playback = FALSE
и
cl.serverstate = FALSE и ss_broadcast = TRUE

В любом случае, для запуска триггера необходима переменная cls.demo.playback в значении FALSE. Т. е. если интерпретировать её дословно - "играется демка" = FALSE. Т. е. демка играться не должна.

Однако это не снимает мой вопрос: зачем Skuller'у понадобилось явно запрещать использование треггеров в демках!
Вернуться к началу
Amok[MEn] is offline Посмотреть профиль Отправить личное сообщение
Amok[MEn]
lpw

   

Зарегистрирован: 14.08.2009
Сообщения: 62

СообщениеДобавлено: Ср Апр 12, 2017 5:19 pm    Заголовок сообщения: Ответить с цитатой

Апну темку.

Исследования r1q2 b8012 показали целый ряд пиздецов:
1) Команда screenshot не позволяет задавать имя файла и путь сохранения! Т. е. тупо по-умолчанию пишет .\каталог_мода_демки\scrnshot\quake000.png с автоматическим увеличением номера демки (типа quake001.png ... quake002.png и т. д.)
2) Ускорение проигрывания демки конечно и не сильно бодрое: либо timedemo 1, либо timescale вроде выше 2 (значения типа 1.1 или 1.2 работают, предел визуально наступает где-то после 1.5). Нельзя адски ускорить демку, выставив timescale 100, например. Что крайне замедляет просмотр 100500 демок.
3) Нихрена нет документации на клиента. Даже в лучшие годы, на ныне уже сдохшем форуме R1CH'а, не было полной документации.

В связи с этим, для автоматической подготовки снимков r1q2 не годится! Максимум что можно: запускать его на серии из нескольких демок и потом вручную разбираться со скринами (переименовывать).
Вернуться к началу
Amok[MEn] is offline Посмотреть профиль Отправить личное сообщение
Amok[MEn]
lpw

   

Зарегистрирован: 14.08.2009
Сообщения: 62

СообщениеДобавлено: Пн Ноя 11, 2019 12:42 am    Заголовок сообщения: Ответить с цитатой

Сохраню тут для истории.

Я изменил в файле src/client/parse.c в 2-х местах строку
Код:
if (!cls.demo.playback && cl.serverstate != ss_broadcast) {

на
Код:
if (cls.demo.playback && cl.serverstate != ss_broadcast) {


Сбилдил клиента и триггеры заработали.

Однако проблема автосохранения скрина пока мной так и не решена. Проблема в том, что итоговая таблица с результатами появляется через хз какое время после срабатывания триггера на сообщение об окончании матча, и нельзя однозначно сказать, что вот через 10 или 100500 wait'ов она уже будет на экране и можно делать скрин...
Вернуться к началу
Amok[MEn] is offline Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов http://forum.quake2.com.ru -> Проблемы и вопросы Часовой пояс: GMT + 7
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы не можете скачивать файлы


Powered by phpBB © 2001, 2005 phpBB Group

File Attachment © by Meik Sievertsen

Anti Bot Question MOD - phpBB MOD against Spam Bots
Заблокировано регистраций / сообщений: 15535 / 0