Zum Inhalt springen

Zombies

Zombies sind bs_zombies. Es ist mit Abstand die größte Resource. Die Kurzfassung, wie es funktioniert: Der Server führt eine Liste jedes Walkers (die Registry), seiner Gesundheit und wer ihn hostet. Spieler sehen nur Peds für Walker in ihrer Nähe. Alles liegt in resources/[beyond]/bs_zombies/config/.

Drei Typen in Zombies.Types (config_zombies.lua): walker, brute, crawler. Crawler brauchen die Resource nutria_crawl_anims vor bs_zombies gestartet, sonst stehen sie auf.

-- bs_zombies/config/config_net.lua
Zombies.Mode = 'networked' -- or 'legacy'
  • networked (Standard) - ein echter OneSync-Ped pro Walker, vom Server erstellt. Alle sehen denselben Zombie an derselben Stelle. OneSync überträgt die Besitzrechte an einen nahen Client, und nur der Besitzer führt dessen KI aus.
  • legacy - die alte Art. Jeder Client baut eigene lokale Peds und meldet Positionen zurück. Nutze es, wenn der vernetzte Modus Ärger macht, es ist nur ein Neustart von bs_zombies, sonst nichts.

Du kannst es auch in der F1-Konsole umschalten (Kategorie Zombies), dafür ist ein Neustart von bs_zombies nötig.

Wie viele Walker gleichzeitig einen echten Ped bekommen:

cap = min(hardCap, baseCap + perPlayerCap * (players - 1))
SchlüsselStandardBedeutung
promoteRadius300ein Walker innerhalb dieser Entfernung zu einem Spieler bekommt einen Ped
demoteHysteresis60Ped wird entfernt, wenn niemand innerhalb von Radius + diesem Wert ist
baseCap24bei einem Spieler online
perPlayerCap18wird für jeden weiteren Spieler addiert
hardCap160nie mehr als das
perPlayerNear34Maximum um einen Spieler
perfBudgetMs70liegt der durchschnittliche Server-Frame darüber, sinkt das Limit
perfMinFactor0.35…aber nie unter diesen Anteil
entitySoft / entityHard1400 / 1900Gesamtzahl Peds+Objekte+Fahrzeuge. Dazwischen schrumpft das Limit, bei hard werden die am weitesten entfernten Walker entfernt
fpsGood / fpsLow / lowFpsFactor45 / 25 / 0.5ein Spieler mit niedrigen FPS bekommt weniger Walker um sich herum
corpseSeconds120Lebensdauer vernetzter Leichen
simDensityScale0.35die Sim-Population wird im vernetzten Modus damit skaliert (Neustart)

Wenn du hardCap erhöhst, erhöhe auch Streaming.PoolGuard.maxNetworked (Standard 96), es begrenzt, wie viele Walker-Einträge überhaupt existieren.

Aus config_streaming.lua:

SchlüsselStandard
Streaming.spawnMin / spawnMax200 / 300Walker spawnen in diesem Ring um einen Spieler
Streaming.PoolGuard.minSpawnDistance100nichts spawnt näher als das an irgendeinem Spieler
Zombies.Settings.spawnDistanceMin100dieselbe Untergrenze, auf der Sektorseite
Streaming.PoolGuard.maxPerPlayer28gezählte Walker um jeden Spieler
Streaming.PoolGuard.clientPedLimit180der Client erstellt bei dieser Ped-Pool-Größe keine Peds mehr
Streaming.PoolGuard.clientMaxLocal40maximale Walker-Peds, die ein Client hält (Legacy)
Streaming.cleanupDistance480

Die Spawn-Untergrenze ist der größte Wert aus spawnDistanceMin, minSpawnDistance und 100. Zombies poppen dir also nie vor der Nase auf, außer beim Force-Spawn des Teams.

In sicheren Zonen spawnt nichts (config_zones.lua). Zombies klettern außerdem überhaupt nicht. Das ist Zombies.Mobility, bitte schalte es nicht ein, sie klettern auf Dächer und bleiben stecken.

Die Map ist in Sektoren unterteilt, die aufwachen und schlafen. Du bearbeitest sie im Sektorkarten-Panel, einer Webseite, die die Resource nodes ausliefert. Beim ersten Start gibt sie die URL mit einem Schlüssel in der Konsole aus. Wenn du deinen eigenen Schlüssel willst:

set bs_sectormap_key "your-own-long-random-token"

Nimm set, nicht setr. setr sendet das Convar an jeden Client, und dann hat jeder Spieler deinen Schlüssel.

Das Team hat außerdem /atlas (bs_atlas), eine Live-Karte der Simulation im Spiel.

Schüsse, Autos, das Decoy-Gadget, Events: alle machen Lärm, und Lärm lockt Walker an (config_noise.lua, Zombies.NoiseSources). Schalldämpfer senken den Waffenlärm stark (Weapons.Effects.suppressor.noiseScale = 0.28). Horden stehen in Zombies.Horde, die Horden-Wellen der Weltevents stehen unter Weltevents.

BefehlSeiteWas
/znetServer, Teamvernetzte Anzahl, Limit und warum, Frame-Durchschnitt, Entity-Zählung, deine Anzahl in der Nähe
/zsyncServer, Teampro Spieler: Server-Walker in der Nähe vs. Peds, die der Client wirklich hat
/zdiagServerallgemeiner Zustand, enthält die /znet-Zeilen
/zstatus, /zsim, /znodes, /sectorServerDirector, Simulation, Nodes, dein Sektor
/zclearServerWalker entfernen
/znetc, /zgaitClientübernommene vernetzte Walker, Besitzer, Gangart
/poolsClientPed-Pool-Auslastung
/safezonesClientKreise der sicheren Zonen zeichnen

Die vollständige Liste steht auf der bs_zombies-API-Seite.

Zurückrollen, wenn der vernetzte Modus kaputtgeht

Abschnitt betitelt „Zurückrollen, wenn der vernetzte Modus kaputtgeht“
  1. Setze Zombies.Mode = 'legacy' (F1 oder die Datei), ensure bs_zombies. Fertig.
  2. Melde, was du gesehen hast, mit der Ausgabe von /znet und /zsync, danach frage ich als Erstes.