Зомби
Зомби это bs_zombies. Это самый большой ресурс с большим отрывом. Коротко о том, как он работает: сервер ведёт список каждого ходячего (реестр), его здоровья и того, кто его хостит. Игроки видят только педов ходячих рядом с собой. Всё лежит в resources/[beyond]/bs_zombies/config/.
Три типа в Zombies.Types (config_zombies.lua): walker, brute, crawler. Для ползунов ресурс nutria_crawl_anims должен быть запущен до bs_zombies, иначе они встают на ноги.
Режим: сетевой или legacy
Заголовок раздела «Режим: сетевой или legacy»-- bs_zombies/config/config_net.luaZombies.Mode = 'networked' -- or 'legacy'- networked (по умолчанию) - один настоящий пед OneSync на ходячего, созданный сервером. Все видят одного и того же зомби в одном месте. OneSync передаёт владение ближайшему клиенту, и только владелец запускает его ИИ.
- legacy - старый способ. Каждый клиент создаёт собственных локальных педов и отправляет позиции обратно. Используй, если сетевой режим доставляет проблемы, это лишь перезапуск bs_zombies и ничего больше.
Переключить можно и из консоли F1 (категория Зомби), нужен перезапуск bs_zombies.
Сетевые лимиты (Zombies.Net)
Заголовок раздела «Сетевые лимиты (Zombies.Net)»Сколько ходячих одновременно получают настоящего педа:
cap = min(hardCap, baseCap + perPlayerCap * (players - 1))| Ключ | По умолчанию | Значение |
|---|---|---|
promoteRadius | 300 | ходячий в этом радиусе от любого игрока получает педа |
demoteHysteresis | 60 | пед удаляется, когда никого нет в радиусе + это значение |
baseCap | 24 | при одном игроке онлайн |
perPlayerCap | 18 | добавляется за каждого дополнительного игрока |
hardCap | 160 | никогда больше этого |
perPlayerNear | 34 | максимум вокруг одного игрока |
perfBudgetMs | 70 | если среднее время кадра сервера выше этого, лимит снижается |
perfMinFactor | 0.35 | …но никогда ниже этой доли |
entitySoft / entityHard | 1400 / 1900 | всего педов+объектов+транспорта. Между ними лимит сжимается, на hard удаляются самые дальние ходячие |
fpsGood / fpsLow / lowFpsFactor | 45 / 25 / 0.5 | у игрока с низким FPS вокруг меньше ходячих |
corpseSeconds | 120 | время жизни сетевых трупов |
simDensityScale | 0.35 | население симуляции умножается на это в сетевом режиме (перезапуск) |
Если поднимаешь hardCap, подними и Streaming.PoolGuard.maxNetworked (по умолчанию 96), он ограничивает, сколько записей ходячих вообще существует.
Появление и расстояния
Заголовок раздела «Появление и расстояния»Из config_streaming.lua:
| Ключ | По умолчанию | |
|---|---|---|
Streaming.spawnMin / spawnMax | 200 / 300 | ходячие появляются в этом кольце вокруг игрока |
Streaming.PoolGuard.minSpawnDistance | 100 | ничто не появляется ближе этого к любому игроку |
Zombies.Settings.spawnDistanceMin | 100 | тот же минимум, со стороны секторов |
Streaming.PoolGuard.maxPerPlayer | 28 | ходячие, учитываемые вокруг каждого игрока |
Streaming.PoolGuard.clientPedLimit | 180 | клиент перестаёт создавать педов при таком размере пула педов |
Streaming.PoolGuard.clientMaxLocal | 40 | максимум педов ходячих у одного клиента (legacy) |
Streaming.cleanupDistance | 480 |
Минимум появления равен наибольшему из spawnDistanceMin, minSpawnDistance и 100. Так что зомби никогда не возникают у тебя перед носом, кроме принудительного спавна персоналом.
В безопасных зонах ничего не появляется (config_zones.lua). Зомби также совсем не лазают. Это Zombies.Mobility, пожалуйста, не включай, они забираются на крыши и застревают.
Секторы
Заголовок раздела «Секторы»Карта разбита на секторы, которые просыпаются и засыпают. Редактируешь их в панели карты секторов, веб-странице, которую отдаёт ресурс nodes. При первом запуске он выводит в консоль URL с ключом. Если хочешь свой ключ:
set bs_sectormap_key "your-own-long-random-token"Используй set, не setr. setr отправляет convar каждому клиенту, и тогда у всех игроков будет твой ключ.
У персонала также есть /atlas (bs_atlas), живая карта симуляции в игре.
Орды и шум
Заголовок раздела «Орды и шум»Выстрелы, машины, гаджет-приманка, события: всё это шумит, а шум привлекает ходячих (config_noise.lua, Zombies.NoiseSources). Глушители сильно снижают шум оружия (Weapons.Effects.suppressor.noiseScale = 0.28). Орды описаны в Zombies.Horde, волны орд мировых событий в разделе Мировые события.
Команды отладки
Заголовок раздела «Команды отладки»| Команда | Сторона | Что |
|---|---|---|
/znet | сервер, персонал | сетевое число, лимит и почему, среднее время кадра, перепись сущностей, твоё число рядом |
/zsync | сервер, персонал | по игрокам, ходячие сервера рядом против педов, которые клиент реально имеет |
/zdiag | сервер | общее состояние, включает строки /znet |
/zstatus, /zsim, /znodes, /sector | сервер | директор, симуляция, узлы, твой сектор |
/zclear | сервер | убрать ходячих |
/znetc, /zgait | клиент | принятые сетевые ходячие, владелец, походка |
/pools | клиент | использование пула педов |
/safezones | клиент | рисовать круги безопасных зон |
Полный список на странице API bs_zombies.
Откат, если сетевой режим ломается
Заголовок раздела «Откат, если сетевой режим ломается»- Поставь
Zombies.Mode = 'legacy'(F1 или файл),ensure bs_zombies. Готово. - Сообщи, что ты видел, с выводом
/znetи/zsync, это первое, о чём я спрошу.
bs19.org · Privacy · Terms · Cookie settings
Cookies and outside content
The site only needs two essential cookies to keep you logged in and protect forms. Videos and streams from YouTube and Twitch load from their servers, which can set their own cookies, so they stay off until you say yes. Nothing is pre-ticked and you can change your mind any time with "Cookie settings" at the bottom of every page. Details.
Questions about the server, the framework or the site? A real person reads this, usually within a day.