Плагин мониторинга FPS, которым я пользуюсь больше года. Каждые 20 секунд замеряется пинг игроков и FPS. Каждые 120 секунд средние по пингу и FPS и моментальное значение FPS пишутся в файл. Кто хочет изменить таймауты - меняйте параметр set_task().
Принцип в общем то тот же, что в из соседней темы.
Код плагина
Код
#include <amxmodx> #include <amxmisc> #include <fakemeta> new g_logfile [64] new sumping[33], nchecks[33]; new fps, sfps, sfpsn, nowfps; new Float:gametime; new Float:framesper; new pcvar_tic, pcvar_max;
public logPing() { new maxping=0; new minping=999; new meanping=0; new num=0; new ping; for (new i=0; i<32; i++) if (nchecks[i] > 3) { num++; ping=sumping[i]/nchecks[i]; meanping+=ping; if (ping>maxping) maxping=ping; if (ping<minping) minping=ping; } if (num>0) { meanping=meanping/num; new stdv=0; for (new i=0; i<32; i++) if (nchecks[i] > 3) { ping=sumping[i]/nchecks[i]; ping=(ping-meanping)*(ping-meanping); stdv+=ping; sumping[i]=0; nchecks[i]=0; } stdv=sqroot(stdv/num); new meanfps=0; if (sfpsn>0) meanfps=sfps/sfpsn; sfps=0; sfpsn=0; new map[33]; get_mapname(map,sizeof map - 1); log_to_file(g_logfile, "%d %d %d %d %d %d %d %s %d %d", num, minping, maxping, meanping, stdv, meanfps, nowfps, map, get_pcvar_num(pcvar_tic), get_pcvar_num(pcvar_max)); } return PLUGIN_CONTINUE; }
public checkPing() { new ping, loss, iPlayers[32], pNum; get_players(iPlayers, pNum, "ch") if (pNum>0) { for(new p=0; p<pNum; ++p) { get_user_ping(iPlayers[p], ping, loss); sumping[iPlayers[p]]+=ping; nchecks[iPlayers[p]]++; } } return PLUGIN_CONTINUE; }
В файл выводятся дата, количество игроков, значения пинга игроков (минимум, максимум, средний, стандартное отклонение, средний и текущий FPS, карта, значения sys_ticrate и fpx_max сервера. Изначально я искал зависимость FPS (или скорее глубины просадок FPS) от наличия пингеров или других факторов, ничего не нашел. FPS зависит от числа игроков и карты. Например, на de_aztec все плохо.
Todo: дату переделать в удобоваримый формат Д.М.Г чтобы файл можно было анализировать в том же офисе без предварительной обработки.
Полезные публикации - ссылки у меня в профиле. Ссылка на плагин против спама на сервере StopServerSpam там же.