API de Zombies
O bs_zombies é grande, mas o que os outros recursos precisam é uma lista curta. Tudo está na página da API do bs_zombies com ficheiro e linha.
Este ped é um zombie?
Seção intitulada “Este ped é um zombie?”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 também respondem a partir do statebag bsZombie para um ped em rede que este cliente ainda não adotou. Usa-os, não verifiques modelos, o modelo pode ser o original.
Outros helpers de cliente: Live() (tabela de walkers adotados), Count(), HostedCount(), HasWalker(id), IsBeingAttacked(), HordeActive(), PlayerProtectedInVehicle().
Magoar zombies a partir do teu código
Seção intitulada “Magoar zombies a partir do teu código”O registo do servidor é dono da vida. O dano do cliente é reportado por quem dispara, mas para algo que tu possuis no servidor (uma torreta, uma armadilha) passa por:
-- serverexports.bs_zombies:GadgetHit(src, walkerId, damage, x, y, range, weapon)Verifica que o walker está a menos de range de x, y. A torreta do bs_gadgets usa-o; vê bs_gadgets/server para o fluxo (o cliente encontra o alvo, o servidor verifica cadência e munição, depois GadgetHit).
Atrair walkers para um ponto:
-- serverexports.bs_zombies:EventNoise(x, y, z, loud)O gadget isco chama-o a cada pulso.
Spawns de eventos
Seção intitulada “Spawns de eventos”Para coisas com guião (as ondas de horda do bs_events usam isto):
-- 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)Os walkers com tag saltam o far-cull enquanto têm tag. Continuam a contar para os limites do pool, não podes criar além de Streaming.PoolGuard.maxNetworked. E o piso de spawn (100 m de cada jogador) continua a aplicar-se.
Informação do mundo
Seção intitulada “Informação do 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
Seção intitulada “Statebags”| Bag | Em | |
|---|---|---|
bsZombie | ped | id do registo. Se existe, é nosso |
zType, zGait, zCrawl, zFeed, zReach, zState, zMhp, zGround, zApp | ped | estado do modo em rede |
bsZombieDead | ped | cadáver em rede |
Nunca apagues tu um walker em rede. O servidor regista apagamentos inesperados, volta a criar o walker se houver um jogador perto, e assinala o dono no bs_guard (zombie_entity_deleted). Se precisas deles fora, usa a tag de evento + EventClear, ou pergunta ao registo.
A limpeza de população do bs_world já ignora tudo o que tenha bsZombie. Se o teu recurso também limpa peds, verifica primeiro IsWalkerPed.
GlobalState.bsZombieMode é 'networked' ou 'legacy'. A maioria dos exports funciona igual nos dois.
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.