spikerwork Posted January 29, 2015 Share 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 Link to comment Short link Share on other sites More sharing options...
sirmax Posted January 30, 2015 Share Posted January 30, 2015 Я планирую встроить подобный функционал в XVM. 5 @ Quote Link to comment Short link Share on other sites More sharing options...
spikerwork Posted January 30, 2015 Author Share Posted January 30, 2015 Я планирую встроить подобный функционал в XVM. Спасибо, это было бы шикарно. Увы очень жаль, что сами разработчики не сделали подобного, типа как это реализовано timedemo quake или hl. PS. Если это ожидается в XVM, тогда необходимость в отдельном моде отпадает и заказ не нужен. @ Quote Link to comment Short link Share on other sites More sharing options...
MakcT40 Posted January 30, 2015 Share 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 Link to comment Short link Share on other sites More sharing options...
sirmax Posted January 31, 2015 Share Posted January 31, 2015 Сделал, надо погонять. 3 @ Quote Link to comment Short link Share on other sites More sharing options...
kharlashkin Posted February 3, 2015 Share Posted February 3, 2015 Сделал, надо погонять. Дай! 1 @ Quote Link to comment Short link Share on other sites More sharing options...
vlad_cs_sr Posted February 3, 2015 Share Posted February 3, 2015 @kharlashkin, * добавлен новый мод xvm_export и секция конфига "export". придётся: http://nightly.modxvm.com/ @ Quote Link to comment Short link Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.