spikerwork 1 Posted January 29, 2015 Привет уважаемым мододелам. Задача состоит в разработке небольшого мода, который бы сохранял значение FPS в отдельный файл. Под FPS в данном случае понимаются те цифры, которые выводятся в левом верхнем углу в WoT по умолчанию. Мод должен устанавливаться на стандартный клиент (без доп. модов) и будет использоваться только при проигрывании записанных реплеев. Для мода должны быть настройки, сохраненные в отдельном файле в формате типа ini или xml. Настройки: 1. имя и путь файла вывода 2. время между записью значения FPS в файл, указанное в секундах (типа каждую 1 (по умолчанию), 2... 5 и т.д.) 3. отключение/включение параллельной с воспроизведением записи в файл. Если отключено, то данные о FPS сохраняются в массив и только по окончании проигрывания реплея записываются в файл. Значение FPS должно записываться в файл построчно, новое значение - новая строка. Массив FPS - точно также. Начало работы с данными FPS по тригеру - старт самого боя, 30-секундный отсчет пропускаем. Обязательное требование - исходники с адекватным кодом и комментариями, дабы дальнейшая поддержка новых версий WoT осуществлялась заказчиком. Сроки не определены, но лучше чтобы мод поддерживал наиболее свежую версию WoT. Связь скайп или почта. Бюджет на это дело - 5к рублей. Оплата ЯД или на карту. Заинтересовавшиеся просьба написать в личку этого форума. 1 Quote Share this post Link to post Short link Share on other sites
sirmax 5,499 #246871 Posted January 30, 2015 Я планирую встроить подобный функционал в XVM. 5 Quote Share this post Link to post Short link Share on other sites
spikerwork 1 #246920 Posted January 30, 2015 Я планирую встроить подобный функционал в XVM. Спасибо, это было бы шикарно. Увы очень жаль, что сами разработчики не сделали подобного, типа как это реализовано timedemo quake или hl. PS. Если это ожидается в XVM, тогда необходимость в отдельном моде отпадает и заказ не нужен. Quote Share this post Link to post Short link Share on other sites
MakcT40 331 #246959 Posted January 30, 2015 Как-то написал подобное для личного пользования. fps095.py import BattleReplay from datetime import datetime from constants import ARENA_PERIOD from Avatar import PlayerAvatar as pa from gui.Scaleform.Battle import _PerformanceStats as ps nowFPS = datetime.now() nowFPS = '%04d%02d%02d-%02d%02d%02d' % (nowFPS.year, nowFPS.month, nowFPS.day, nowFPS.hour, nowFPS.minute, nowFPS.second) ps.cntr = ps.fpsTotal = ps.fpsReplayTotal = 0 def new_udiFPS(self, fps, ping, lag, fpsReplay): if fpsReplay != 0 and fpsReplay != -1: if BattleReplay.g_replayCtrl.getArenaPeriod() == ARENA_PERIOD.BATTLE: ps.fpsTotal += fps ps.fpsReplayTotal += fpsReplay ps.cntr += 1 fps = '{0}({1})'.format(fpsReplay, fps) else: fps = str(fps) self.flashObject.as_updateDebugInfo(fps, str(ping), lag) old_onEnterWorldFPS = pa.onEnterWorld def new_onEnterWorldFPS(self, prereqs): old_onEnterWorldFPS(self, prereqs) if BattleReplay.g_replayCtrl.isPlaying: ps.updateDebugInfo = new_udiFPS pa.onEnterWorld = new_onEnterWorldFPS old_orfFPS = BattleReplay.BattleReplay.onReplayFinished def new_orfFPS(self): fileName = self._BattleReplay__replayCtrl.getAutoStartFileName() f = open(fileName[:-10] + '(' + nowFPS + ').txt', 'w') fileName = fileName[fileName.rfind('\\') + 1:-10] f.write(fileName + ' (' + nowFPS + ')\nReal: '+ str(ps.fpsTotal/ps.cntr) + '\nRecorded: ' + str(ps.fpsReplayTotal/ps.cntr)) f.close() old_orfFPS(self) BattleReplay.BattleReplay.onReplayFinished = new_orfFPS Результат работы: при выдаче клиентом сообщения о завершении проигрывания реплея рядом с файлом реплея создаётся текстовый файл примерно такого вида: ussr_Object252_fjord (20150130-221539) Real: 50 Recorded: 55В первой строке имя файла реплея без расширения, дата, время начала воспроизведения реплея.Вторая строка - среднее значение fps при воспроизведении реплея. Третья строка - среднее значение fps, полученное при записи реплея, т.е. - у игрока-автора реплея. Таким образом, цифра в третьей строке должна быть одинаковой при воспроизведении конкретного реплея на любых компах и с любыми настройками. Имя созданного текстового файла из примера выше такое: "ussr_Object252_fjord(20150130-221539).txt". Начало подсчёта fps совпадает с началом боя (после 30-секундного отсчёта), конец подсчёта - перед появлением окошка о завершении воспроизведения реплея. Код открыт, копирайтов нет. 3 Quote Share this post Link to post Short link Share on other sites
sirmax 5,499 #247137 Posted January 31, 2015 Сделал, надо погонять. 3 Quote Share this post Link to post Short link Share on other sites
kharlashkin 239 #247507 Posted February 3, 2015 Сделал, надо погонять. Дай! 1 Quote Share this post Link to post Short link Share on other sites
vlad_cs_sr 1,575 #247508 Posted February 3, 2015 @kharlashkin, * добавлен новый мод xvm_export и секция конфига "export". придётся: http://nightly.modxvm.com/ Quote Share this post Link to post Short link Share on other sites