Funnyranks - брокер сбора логов с HLDS серверов игрового хостинга для отправки в MySQL таблицы игровых проектов для расчёта статистики игроков. Писал для одного игрового хостинга, возможно и вам понадобится. Основная страница на github - Установка доступна в wiki - Сбор статистики и расчёт ранков происходит в триггерах базы каждого проекта (не в брокере). Доступен - отображает ранки игроков (расчётом не занимается) Накопление статистики игроков происходит в зависимости от настроек игрового проекта - по нику, IP, Steam ID (лицензионному). Управление брокером происходит через браузер. Для доступа к управлению существует 2 роли - для админа хостинга 'broker' и админа проекта 'project'. Если вы являетесь админом игрового хостинга, вы можете пригласить админов проекта, чтобы пользоваться этим.
Основная схема:
Скрины с игры CS 1.6
Скрины
Eng lang:
Пример /top15 игроков (synthetic data):
Обработчик логов реализован только для
Half-Life Dedicated Server (AppID 90)
Для следующих игровых движков обработчики логов не реализованы, но теоретически это возможно. Для разработчиков: вы можете унаследовать класс и реализовать обработчик логов для других игровых движков
Dedicated Servers
Source 2007 Dedicated Server (AppID 310)
Left 4 Dead Dedicated Server (AppID 510)
Counter-Strike: Global Offensive Dedicated Server (AppID 740)
Dark Messiah Might and Magic Dedicated Server (AppID 2145)
The Ship Dedicated Server (AppID 2403)
Race Dedicated Server (AppID 4240)
Zombie Panic! Source Dedicated Server (AppID 17505)
Age of Chivalry Dedicated Server (AppID 17515)
Synergy Dedicated Server (AppID 17525)
D.I.P.R.I.P. Dedicated Server (AppID 17535)
Insurgency Mod Dedicated Server (AppID 17705)
Nuclear Dawn - Dedicated Server (AppID 111710)
Left 4 Dead 2 Dedicated Server (AppID 222860)
Team Fortress 2 Dedicated Server (AppID 232250)
Day of Defeat: Source Dedicated Server (AppID 232290)
Counter-Strike: Source Dedicated Server (AppID 232330)
Half-Life 2: Deathmatch Dedicated Server (AppID 232370)
Insurgency Dedicated Server (AppID 237410)
Source SDK Base 2013 Dedicated Server (AppID 244310)
7 Days to Die Dedicated Server (AppID 294420)
No More Room in Hell Dedicated Server (AppID 317670)
Day of Infamy Dedicated Server (AppID 462310)
Поблагодарили 0 раз Поблагодарили 0 раз
mbto
16.11.2025, 0:22
Сообщение
Стаж: 4 года 8 месяцев
Сообщений: 2
Благодарностей: 1
Полезность: 0
v1.1 is available on : + added kick event, and some fixes
регулировать скорость прокачки можно в процедуре
calculate_level
CREATE DEFINER=`root`@`%` FUNCTION `calculate_level`( kills INT UNSIGNED, deaths INT UNSIGNED, time_secs INT UNSIGNED, ranks_count INT UNSIGNED ) RETURNS int unsigned READS SQL DATA DETERMINISTIC BEGIN /* ========== КАК РЕГУЛИРОВАТЬ СКОРОСТЬ ПРОКАЧКИ ==========
PTS_PER_LVL = 1.25 – цена уровня (меньше = быстрее) TIME_WEIGHT = 0.95 – 95 % очков даёт время (kreedz-friendly) MAX_TIME_PTS = 75 – потолок выше фактических 57.6 LN-ед. PTS_PER_HOUR = 0.12 – 0.12 LN-ед./час (600 ч = 72 LN-ед.)
Параметр Эффект Пример изменения -------------------- --------------------- ------------------------- PTS_PER_LVL ↑ Медленнее 1.0 → 2.0 (в 2 раза дольше) PTS_PER_LVL ↓ Быстрее 1.0 → 0.5 (в 2 раза быстрее)
MAX_TIME_PTS ↑ Выше потолок по времени 40 → 80 (можно «качаться» дольше) MAX_TIME_PTS ↓ Ниже потолок 40 → 20 (время быстро перестаёт помогать)
PTS_PER_HOUR ↑ Больше очков за час 0.12 → 0.24 (каждый час в 2 раза ценнее) PTS_PER_HOUR ↓ Меньше очков за час 0.12 → 0.06 (в 2 раза медленнее) */ DECLARE PTS_PER_LVL DOUBLE DEFAULT 1.25; -- +1 ур. за 1.25 LN-ед. DECLARE MIN_TIME_SEC INT DEFAULT 3*3600; DECLARE MIN_KD DOUBLE DEFAULT 0.30; DECLARE TIME_WEIGHT DOUBLE DEFAULT 0.95; -- 95 % время DECLARE MAX_TIME_PTS DOUBLE DEFAULT 75; -- потолок выше 68.5 DECLARE PTS_PER_HOUR DOUBLE DEFAULT 0.12; -- 0.12 LN-ед./час