FWGS / xash3d-fwgs

Xash3D FWGS engine
1.58k stars 241 forks source link

Не работает поддержка русского языка на новых серверах. #345

Closed ghost closed 3 years ago

ghost commented 3 years ago

На новых серверах не работает поддержка русского языка, не смотря на наличие extras,pak с дополнительными шрифтами у клиентов, вместо русских букв возращается мусор.

ghost commented 3 years ago

Кажется, проблема где-то на уровне сетевого кода, ибо замечено, что подобное происходит в зависимости от платформы клиента и сервера. Если клиент на X86/AMD64, а сервер на ARM64, то мусор вместо текста отсылается у всех клиентов независимо от их платформы. Если клиент на ARM64, а сервер на X86/AMD64, то мусор вместо текста отсылается только у клиента на ARM64, к тому-же после этого его вовсе выкидывает с сервера. Проблема походу в char, который на разных платформах становится unsigned вместо ожидаемого signed, mittorn пару раз предполагал насчёт этого. В качестве временного решения этой проблемы можно скомпилировать движок с -fsigned-char, но я считаю, что это костыль и проблему надо править на стороне самого кода.

mittorn commented 3 years ago

Я не предполагал, а точно знаю что кто-то собирал сервера с unsigned char и не поправленным WriteString (вроде бы проблема в нём, в любом случае на уровне отправки сетевых сообщений). Заходить на них скорее всего небезопасно, по крайней мере с оригинальным халфовым клиентом

mittorn commented 3 years ago

https://github.com/FWGS/xash3d/blob/725fd84b5ba8d405979d63df7a906feb1bc87d51/engine/server/sv_game.c#L2717 думаю в эту сторону копать

mittorn commented 3 years ago

https://github.com/FWGS/xash3d/commit/abc843b5130b08f8c340395ff27103dcee441910 и весь этот коммит

ghost commented 3 years ago

Исправили в коммите https://github.com/FWGS/xash3d-fwgs/commit/a547526e86804e3907daed478622412494ca3fca.