Open Vladislav4KZ opened 1 year ago
Это баг, который есть во многих халфомодах. И связан он с функцией Host_Say
в серверной библиотеке. Там строка побайтово проверяется на условие !isspace(character)
(это такая своеобразная проверка на то, содержит ли строка буквы/цифры). Однако, с UTF-8 строками подобная проверка несовместима, потому и не работает кириллица, и любые другие символы, отличные от латиницы. А поведение бага на винде и линуксе разное, потому что функция isspace
стандартной библиотеки в винде и линуксе реализована по разному.
Причём как я понял, это характерно именно для модов на старом HLSDK, ибо начиная с версии 2.3, там уже есть валидная проверка на UTF-8 строки https://github.com/alliedmodders/hlsdk/blob/a0edb7792a96998d349325bebab8ea41ec5cb239/dlls/client.cpp#L393
На Windows такой проблемы нет. (точнее проявляется только в определённых моментах)
Все серверы работают на линуксе, и там присутствует данный баг.
Если в чате помимо текста на кириллице, добавить точку, латинскую букву или другой символ, то сообщение отправляется в чат.
Эта проблема не зависит от версии клиента, она проявляется как и на оригинальном стимовском клиенте, так и на https://github.com/Velaron/tf15-client
Я ранее сообщал немного о другом баге, что если в чате содержатся определённые символы кириллицы, и при этом нет латиницы или спецсимволов, то сообщение не отправляется в чат даже на Windows и даже в игре, запущенной на GoldSource https://github.com/FWGS/xash3d-fwgs/issues/561
Вкратце, на линуксе в чат не отправляется НЕ ЕДИНАЯ буква кириллицы без точки, а на Windows не отправляется текст, содержащий только определённые буквы кириллицы