Zombies-API
bs_zombies ist groß, aber was andere Ressourcen brauchen, ist eine kurze Liste. Alles steht mit Datei und Zeile auf der bs_zombies-API-Seite.
Ist dieses Ped ein Zombie?
Abschnitt betitelt „Ist dieses Ped ein Zombie?“Client:
if exports.bs_zombies:IsWalkerPed(ped) then local id = exports.bs_zombies:WalkerIdOf(ped) -- registry id, nil if not a walkerendlocal crawler = exports.bs_zombies:IsCrawlerPed(ped)IsWalkerPed/WalkerIdOf antworten auch aus dem Statebag bsZombie für ein vernetztes Ped, das dieser Client noch nicht übernommen hat. Nutze sie, prüfe keine Modelle, das Modell kann das Vanilla-Modell sein.
Weitere Client-Helper: Live() (Tabelle übernommener Walker), Count(), HostedCount(), HasWalker(id), IsBeingAttacked(), HordeActive(), PlayerProtectedInVehicle().
Zombies aus deinem Code verletzen
Abschnitt betitelt „Zombies aus deinem Code verletzen“Die Server-Registry besitzt die Gesundheit. Client-Schaden wird vom Schützen gemeldet, aber für etwas, das dir auf dem Server gehört (eine Turret, eine Falle), gehst du über:
-- serverexports.bs_zombies:GadgetHit(src, walkerId, damage, x, y, range, weapon)Es prüft, ob der Walker innerhalb von range um x, y ist. Die Turret von bs_gadgets nutzt es, schau in bs_gadgets/server für den Ablauf (Client findet das Ziel, Server prüft Feuerrate und Munition, dann GadgetHit).
Walker an einen Punkt ziehen:
-- serverexports.bs_zombies:EventNoise(x, y, z, loud)Das Köder-Gadget ruft es bei jedem Puls auf.
Event-Spawns
Abschnitt betitelt „Event-Spawns“Für geskriptete Dinge (die Horden-Wellen von bs_events nutzen diese):
-- serverexports.bs_zombies:EventSpawn(x, y, 'walker', { tag = 'myres:wave1', hpScale = 1.0 })exports.bs_zombies:EventDrive('myres:wave1', x, y, z, seconds) -- push tagged walkers towards a pointlocal n = exports.bs_zombies:EventCount('myres:wave1')exports.bs_zombies:EventClear('myres:wave1', keepAsNormal)Getaggte Walker überspringen den Far-Cull, solange sie getaggt sind. Sie zählen weiter gegen die Pool-Limits, du kannst nicht über Streaming.PoolGuard.maxNetworked hinaus spawnen. Und der Spawn-Mindestabstand (100 m zu jedem Spieler) gilt weiterhin.
Weltinfos
Abschnitt betitelt „Weltinfos“-- serverexports.bs_zombies:SafeZones() -- zone listexports.bs_zombies:SafeZonesPadded()exports.bs_zombies:Total() -- registry countexports.bs_zombies:Heat(zoneId)exports.bs_zombies:Snapshot()Statebags
Abschnitt betitelt „Statebags“| Bag | Auf | |
|---|---|---|
bsZombie | Ped | Registry-ID. Wenn es da ist, gehört er uns |
zType, zGait, zCrawl, zFeed, zReach, zState, zMhp, zGround, zApp | Ped | Zustand im vernetzten Modus |
bsZombieDead | Ped | vernetzte Leiche |
Lösche nie selbst einen vernetzten Walker. Der Server verfolgt unerwartete Löschungen, erzeugt den Walker neu, wenn ein Spieler in der Nähe ist, und markiert den Besitzer in bs_guard (zombie_entity_deleted). Wenn du sie weg haben willst, nutze den Event-Tag + EventClear oder frage die Registry.
Der Populations-Sweep von bs_world überspringt bereits alles mit bsZombie. Wenn deine Ressource ebenfalls Peds aufräumt, prüfe zuerst IsWalkerPed.
GlobalState.bsZombieMode ist 'networked' oder 'legacy'. Die meisten Exports funktionieren in beiden gleich.
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.