Counter-Strike:Source и не работавшая команда RANK в игре. РЕШЕНО!
После перехода на хостинг арены я был доволен всем, кроме того факта, что статистика HLstatsX:CE здесь работала с проблемой, а именно: в игре команда rank срабатывала у игроков только 1 раз, и чтобы просмотреть ранк снова, пользователю нужно было переподключиться.
2 недели попыток решить проблему сподвигли сделать практически ВСЕ возможные тесты сервера, но команда rank по прежнему не работала.
Обратившись в техподдержку я, полагаю, нехило озадачил ваших знатоков, потому что ответа не было очень долго))
А суть вопроса была в следующем, вот отрывок из письма в техподдержку:
Это фрагмент данных из окна консоли сервера, в двух случаях, когда у игрока открывается стата и когда команда остается без ответа.
И написал rank и стата открылась!
_________________________________________________
L 02/07/2016 - 02:56:08: "mйqќs<4><STEAM_0:0:55955439><CT>" say "rank"
rcon from "89.179.112.197:22109": command "hlx_sm_msay "15" "4" "->1 - Oбщиe\n Пoзиция 25 из 1,825\n 3,002
Oчкoв\n 3,724:5,552 Фpaгoв (0.67)\n 1,365 Пoпaдaний в гoлoву (37%)\n 1152 Убийcтв c Bundeswehr Advanced
Combat Knife\n 22% Toчнocть (Bundeswehr Advanced Combat Knife 11%)\n Вpeмя 10d 08:18:01h\n \n->2 - Ceccия
\n 0 Пoзиция\n 0 Oчкoв\n 0:0 Фpaгoв (0.00)\n 0 Пoпaдaний в гoлoву (0%)\n Heт пocтoяннoгo opужия\n
Вpeмя 0d 00:00:05h\n""
Игрок написал rank и стата НЕ открылась, появилась строчка: Cbuf_AddText: buffer overflow
_____________________________________
L 02/07/2016 - 02:55:59: "Superstar<4><STEAM_0:0:55955439><CT>" say "rank"
Cbuf_AddText: buffer overflow
rcon from "89.179.112.197:22109": command "hlx_sm_msay "15" "3" "->1 - Oбщиe\n Пoзиция 14 из 1,825\n 3,276
Oчкoв\n 965:961 Фpaгoв (1.00)\n 322 Пoпaдaний в гoлoву (33%)\n 318 Убийcтв c Bundeswehr Advanced Combat
Knife\n 18% Toчнocть (Bundeswehr Advanced Combat Knife 13%)\n Вpeмя 1d 05:12:33h\n \n->2 - Ceccия\n 0
Пoзиция\n +24 Oчкoв\n 2:0 Фpaгoв (2.00)\n 0 Пoпaдaний в гoлoву (0%)\n 2 Убийcтв c Bundeswehr Advanced
Combat Knife\n 11% Toчнocть
Что получается: в обоих случаях в консоли мы видим, что на севере есть информация от сервера статы, тоесть
ничего не пропадает... Но во втором случае в консоли у этих строчек соседствует: Cbuf_AddText: buffer overflow и
окошко статистики не открывается, несмотря на то, что данные от сервера статы прилетели.
Собственно косяк, как оказалось именно на стороне MyArena.
Сервер статистики, который запущен сейчас у меня на внешнем Windows сервере выглядит следующим образом (собственно на Linux он такой же), и там имеется файлик серверных событий HLstats_EventHandlers.plib
Открываем его, и находим следующий фрагмент, а именно параметры выдачи текстового окна в игре, которое судя по консольным данным оказывается для сервера слишком длинным и блокируется сервером как Buffer_Overflow.
А знаете почему стата срабатывала только 1 раз? Дело в том, что только что подключившийся игрок не имел данных статистики по текущей сессии, и данные от сервера статы были меньше, но как только появляется статистика сесии - ответ сервера статы сразу превышает ограничение буффера команд и блокируется...
Правим в файле EvenHandlers выдачу статы, а именно: убираем лишние пробелы и пишем все как можно компактнее:
Проблема решена!
Уважаемые специалисты MyArena, внесите данные поправки в свои сервера статистики, так как стата востребована и не у всех, как у меня, есть возможность запускать ее на внешнем сервере.
К слову, это был не единственный косяк, существует так же проблема с кодировкой русских ников и ников со спецсимволами в игре... Но это уже другая тема.
Всем спасибо всем свободны, хочешь что-то сделать - сделай сам!