Jump to content
Korean Random
Sign in to follow this  
spikerwork

[Заказ] Лог значений FPS

Recommended Posts

Привет уважаемым мододелам.

 

Задача состоит в разработке небольшого мода, который бы сохранял значение FPS в отдельный файл.

Под FPS в данном случае понимаются те цифры, которые выводятся в левом верхнем углу в WoT по умолчанию.

Мод должен устанавливаться на стандартный клиент (без доп. модов) и будет использоваться только при проигрывании записанных реплеев.

 

Для мода должны быть настройки, сохраненные в отдельном файле в формате типа ini или xml.

 

Настройки:

1. имя и путь файла вывода

2. время между записью значения FPS в файл, указанное в секундах (типа каждую 1 (по умолчанию), 2... 5 и т.д.)

3. отключение/включение параллельной с воспроизведением записи в файл. Если отключено, то данные о FPS сохраняются в массив и только по окончании проигрывания реплея записываются в файл.

 

Значение FPS должно записываться в файл построчно, новое значение - новая строка.  Массив FPS -  точно также.

Начало работы с данными FPS по тригеру - старт самого боя, 30-секундный отсчет пропускаем.

 

Обязательное требование - исходники с адекватным кодом и комментариями, дабы дальнейшая поддержка новых версий WoT осуществлялась заказчиком.

Сроки не определены, но лучше чтобы мод поддерживал наиболее свежую версию WoT.

Связь скайп или почта.

 

Бюджет на это дело - 5к рублей. Оплата ЯД или на карту.

 

Заинтересовавшиеся просьба написать в личку этого форума.

 

  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

Я планирую встроить подобный функционал в XVM.

 

Спасибо, это было бы шикарно.

Увы очень жаль, что сами разработчики не сделали подобного, типа как это реализовано timedemo quake или hl.

 

PS. Если это ожидается в XVM, тогда необходимость в отдельном моде отпадает и заказ не нужен.

Share this post


Link to post

Short link
Share on other sites

Как-то написал подобное для личного пользования.

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-секундного отсчёта), конец подсчёта - перед появлением окошка о завершении воспроизведения реплея.

Код открыт, копирайтов нет.

  • Upvote 3

Share this post


Link to post

Short link
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...