Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

При создании сервера из меню игры sv_zmax не обновляется #1813

Closed
Aynekko opened this issue Sep 8, 2024 · 11 comments

Comments

@Aynekko
Copy link

Aynekko commented Sep 8, 2024

Шаги для проверки бага:
Открываю игру, на фоне карта-бэкграунд
В консоли ввожу sv_zmax, показывает 3000, что верно для данной карты.
Захожу в LAN, Create game, выбираю карту с обширным пространством.
Заспавнился на карте, ввожу sv_zmax, вижу 3000, что НЕ соответствует. Должно быть 65000, согласно прописанному значению в энтити worldspawn.

Баг не проявляется, если запустить карту из меню через команду map.

Баг проявляется, если не создавать сервер через LAN меню, а просто ввести команду maxplayers 2 и потом map karta, значение sv_zmax все еще будет с предыдущей карты-бэкграунда.

@a1batross
Copy link
Member

Движок sv_zmax из worldspawn не читает, но судя по XashXT, sv_zmax ставится из CWorld::Precache.

@Aynekko
Copy link
Author

Aynekko commented Sep 8, 2024

Действительно, закомментил код

if ( pev->speed > 0 )
		CVAR_SET_FLOAT( "sv_zmax", pev->speed );
	else
		CVAR_SET_FLOAT( "sv_zmax", 4096 );

Но в таком случае я вообще на любой карте вижу sv_zmax 4096.
Непонятно, как в таком случае пользоваться max viewable distance, которая выставляется в хаммере.

Проверил этот трюк на ксаше, на папке valve, стим-халфа. Баг остается вроде как. Должно быть на карте 8000, а показывает 4096, при maxplayers 5. Если игрок 1, то все ок.

@Aynekko
Copy link
Author

Aynekko commented Sep 8, 2024

В оригинальной халфе этот код тоже есть, кстати:
https://github.com/ValveSoftware/halflife/blob/e5815c34e2772a247a6843b67eab7c3395bdba66/dlls/world.cpp#L629

@a1batross
Copy link
Member

А в голдсорсе он интересно тоже сломан?

Прекеш мира должен всегда исполняться...

@Aynekko
Copy link
Author

Aynekko commented Sep 8, 2024

А в голдсорсе он интересно тоже сломан?

Нет, проверил. Выставил sv_zmax 4096, потом maxplayers 10, потом карту где 8000 дальность.
Заспавнился в режиме дезматча, sv_zmax 8000.

@Aynekko
Copy link
Author

Aynekko commented Sep 8, 2024

Выставил алерт в прекеше World. Прекеш выполняется. Судя по всему, установка sv_zmax просто-напросто игнорируется.

@N7P0L3ON
Copy link

N7P0L3ON commented Sep 11, 2024

@Aynekko I had the same problem with my mod Flatline Arena. The engine is sending the value of 4096.
This was a problem for me since I have shader skybox... and in some situations 4096 is not sufficient... There is however quite easy fix for it... I mean it's a bit ugly, but it does the job...

dlls\cbase.cpp

under function void DispatchThink( edict_t *pent )

add this:

auto sv_zmax = CVAR_GET_POINTER("sv_zmax");
if (sv_zmax && sv_zmax->value == 4096.0f)
{
CVAR_SET_FLOAT("sv_zmax", 8192);
}

Maybe there is a better place to add it, but it does the job. You can also set the value to more than 8192; for me double the value is the max I need anyway.
Also maybe I need to set it up to check if the value is 4096 or lower, but I think the engine is set to that value... so...

Another tip... this function can be used to change other engine cvars... Just make sure not to replace the vanilla dlls under /valve/dlls with a modified one... I hear VAC does not work for Gold Source, but you never know :D
For mods it's ok.

@Aynekko
Copy link
Author

Aynekko commented Sep 11, 2024

I will rather wait until it is fixed in the engine. But thank you for the info.

@N7P0L3ON
Copy link

I have not seen it reported in the HL SDK.. so I doubt it's on Valve's radar...

@Aynekko
Copy link
Author

Aynekko commented Sep 11, 2024

This issue is not present on hl25 update, that's the thing. So I need it fixed in Xash

@a1batross
Copy link
Member

Пофиксил в 29fd5f9. Чтобы фикс заработал, нужно удалить listenserver.cfg не только в корневом каталоге мода, но и в его базовом каталоге.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants