Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Это какой такой? voteban / votemute / votekick / votemap для обычных игроков добавляют кастомные плагины, а не SM (подозреваю, в данном случае юзался Players Votes). Некоторые из этих команд в SM есть только для голосований, проводимых администратором
Это какой такой? voteban / votemute / votekick / votemap для обычных игроков добавляют кастомные плагины, а не SM (подозреваю, в данном случае юзался Players Votes). Некоторые из этих команд в SM есть только для голосований, проводимых администратором
Эта "проблема" существует с самого появления МА, она даже в СБ есть. Её никак не решить мирным путём. Все попытки её решения так или иначе будут сводиться к появлению "костылей", которые кому-то придётся поддерживать в рабочем состоянии.
Эта "проблема" существует с самого появления МА, она даже в СБ есть. Её никак не решить мирным путём. Все попытки её решения так или иначе будут сводиться к появлению "костылей", которые кому-то придётся поддерживать в рабочем состоянии.
Хорошо. Через пару часов сяду за ПК и поставлю себе GameVoting, после чего, проверю voteban и отображение банов в sb.
Надеюсь, будет работать и отображать без ошибок.
Я уже описывал пару раз в чатах и в личках, почему это происходит. Кажется, пора перенести описание и в публичное пространство.
Для тех, кому подробности не интересны: виной являются русские буквы в ответе сервера и иные символы длиннее 1 байта. Неважно, где: ник игрока или имя сервера. В любом месте может произойти "выстрел в колено".
А для тех, кто жаждет подробностей, жду под спойлером.
Чтобы понимать, почему вообще так происходит, нужно немного углубиться в то, как работает сам мониторинг. Source Dedicated Server (он же SrcDS) реализует протокол опроса сервера, именуемый ещё Source Query Protocol. Подробное описание протокола есть на Valve Developers, я тут заострять на нём внимание не буду, отмечу лишь причину, по которой иногда можно поймать "XAJAX Call Failed" (это будет намного полезнее, чем труды некоторых форумчан в скриптинге, которыми они хвастаются в темах (привет @tonline_kms65_1)).
Протокол, сам по себе, не задаёт жёстко величины для тех или иных полей. Зато их задаёт SRCDS, потому что написан он на С++, и не использует "динамически расширяемые строки" (как в PHP, Java, JavaScript, BSL (1C) или C#). И задаёт величины он с учётом кодировки ASCII, хотя сам данными оперирует в UTF-8.
Это и является корнем проблемы.
Типичный русский символ занимает два байта. Смайлики, иероглифы тоже больше байта занимают. Когда у человека какой-то символ не влезает, клиентская часть движка заменяет их при отрисовке на экране на т.н. "заменяющий символ". Его видел абсолютно каждый, просто, возможно, не знает этого.
Но заменяется он лишь на этапе отрисовки. В памяти он продолжает храниться в "обрезанном" невалидном формате. И в ответах любым клиентам - он попадает точно так же в "обрезанном" невалидном формате.
Когда SB (это касается и Материала) спрашивает у сервера основную информацию о сервере и перечень игроков, сервер может ответить ему незавершённой UTF-8 последовательностью (которую клиент заменяет на "заменяющий символ"). Но PHP... Он не знает, завершён символ или нет. Да и ему это не особо интересно. Он получил строку - ею и оперирует. И вставляет в ответ сервера.
Если бы AJAX в SB работал бы по JSON, то, возможно, и проблемы бы не было (ключевое слово - "возможно": на деле я не знаю). Но он использует XML, билдер которого при виде такой последовательности, видимо, воспринимает весь ответ как "закодированный Win1251". И кодирует соответственно, не взирая на чёткую инструкцию "нужен UTF-8".
И браузер уже, получая в заголовках UTF-8, а в теле Win1251, сначала как бы пытается честно отпарсить, но натыкаясь на что-то неожиданное для Win1251, "падает". А это, в свою очередь, приводит к тому, что ответ обработать невозможно, и уже XAJAX выдаёт эту знаменитую ошибку, и показывает тело ответа...
Исправить эту ошибку возможно, варианты даже есть, но все они - не очень быстрые. Потому она, к сожалению, до сих пор живёт. И в наши дни.
Что ж. Было принято решение выпустить 1.1.6 в ближайшее время. Все запланированные в одной из тем фичи переедут на 1.2.0.
1.1.6 - больше "исправительный" релиз: с выхода 1.1.5.4 прошло уже достаточно времени. Проблемы копятся (которые исправлялись), а возвращаться к развитию старой версии желания, естественно, никакого.
В ближайшие дни, подытожу итоги с начала разработки 1.1.6. Они небольшие (времени особого заниматься проектом не было), но всё же - они есть. И для кого-то - существенные.
И да, я помню, что в 1.1.6 до сих пор есть проблемы с общением с игровым сервером, где запущен новый плагин (в частности, команды летят не те). Это исправление попадёт в ветку до выхода в паблик.
Сто лет не заходил) но нужен совет/идея куда копать.
Стоит плагин 0.8.2, но наверно всё же дело не в нем.
Проблема: оч часто при бане/кике/муте админов выкидывает с сервера с ошибкой клиента ксго Processing time exceeded. Логи серва чистые. net_chan_limit_msec 0 (наверно это офф)
Есть идеи?)