API de zombis
bs_zombies es grande, pero lo que otros recursos necesitan es una lista corta. Todo está en la página de la API de bs_zombies con archivo y línea.
¿Es este ped un zombi?
Sección titulada «¿Es este ped un zombi?»Cliente:
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 también responden desde el statebag bsZombie para un ped en red que este cliente aún no ha adoptado. Úsalos, no compruebes modelos, el modelo puede ser el de vanilla.
Otros helpers de cliente: Live() (tabla de walkers adoptados), Count(), HostedCount(), HasWalker(id), IsBeingAttacked(), HordeActive(), PlayerProtectedInVehicle().
Dañar zombis desde tu código
Sección titulada «Dañar zombis desde tu código»El registro del servidor es dueño de la vida. El daño del cliente lo reporta quien dispara, pero para algo que tú posees en el servidor (una torreta, una trampa) pasa por:
-- serverexports.bs_zombies:GadgetHit(src, walkerId, damage, x, y, range, weapon)Comprueba que el walker está a menos de range de x, y. La torreta de bs_gadgets lo usa; mira bs_gadgets/server para el flujo (el cliente encuentra el objetivo, el servidor comprueba cadencia y munición, luego GadgetHit).
Atraer walkers a un punto:
-- serverexports.bs_zombies:EventNoise(x, y, z, loud)El gadget señuelo lo llama en cada pulso.
Spawns de eventos
Sección titulada «Spawns de eventos»Para cosas con guion (las oleadas de horda de bs_events usan esto):
-- 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)Los walkers con tag se saltan el far-cull mientras tienen tag. Siguen contando para los límites del pool, no puedes crear más allá de Streaming.PoolGuard.maxNetworked. Y el mínimo de spawn (100 m de cada jugador) sigue aplicándose.
Información del mundo
Sección titulada «Información del mundo»-- serverexports.bs_zombies:SafeZones() -- zone listexports.bs_zombies:SafeZonesPadded()exports.bs_zombies:Total() -- registry countexports.bs_zombies:Heat(zoneId)exports.bs_zombies:Snapshot()Statebags
Sección titulada «Statebags»| Bag | En | |
|---|---|---|
bsZombie | ped | id del registro. Si está, es nuestro |
zType, zGait, zCrawl, zFeed, zReach, zState, zMhp, zGround, zApp | ped | estado del modo en red |
bsZombieDead | ped | cadáver en red |
Nunca borres tú un walker en red. El servidor rastrea los borrados inesperados, recrea el walker si hay un jugador cerca y marca al dueño en bs_guard (zombie_entity_deleted). Si necesitas quitarlos, usa la tag de evento + EventClear, o pregunta al registro.
El barrido de población de bs_world ya omite todo lo que tenga bsZombie. Si tu recurso también limpia peds, comprueba primero IsWalkerPed.
GlobalState.bsZombieMode es 'networked' o 'legacy'. La mayoría de los exports funcionan igual en ambos.
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.