İçeriğe geç

Zombi API'si

bs_zombies büyüktür, ama diğer kaynakların ihtiyacı kısa bir listedir. Her şey dosya ve satırla bs_zombies API sayfasında.

İstemci:

if exports.bs_zombies:IsWalkerPed(ped) then
local id = exports.bs_zombies:WalkerIdOf(ped) -- registry id, nil if not a walker
end
local crawler = exports.bs_zombies:IsCrawlerPed(ped)

IsWalkerPed/WalkerIdOf, bu istemcinin henüz benimsemediği ağ pedi için bsZombie statebag’inden de yanıt verir. Bunları kullanın, modelleri kontrol etmeyin, model vanilya olabilir.

Diğer istemci yardımcıları: Live() (benimsenmiş yürüyenler tablosu), Count(), HostedCount(), HasWalker(id), IsBeingAttacked(), HordeActive(), PlayerProtectedInVehicle().

Sunucu kaydı canı yönetir. İstemci hasarını atıcı bildirir, ama sunucuda sizin sahip olduğunuz bir şey için (bir taret, bir tuzak) şuradan geçin:

-- server
exports.bs_zombies:GadgetHit(src, walkerId, damage, x, y, range, weapon)

Yürüyenin x, y’ye range içinde olup olmadığını denetler. bs_gadgets’ın tareti bunu kullanır, akış için bs_gadgets/server’a bakın (istemci hedefi bulur, sunucu atış hızını ve cephaneyi denetler, sonra GadgetHit).

Yürüyenleri bir noktaya çek:

-- server
exports.bs_zombies:EventNoise(x, y, z, loud)

Yem aleti bunu her darbede çağırır.

Betiklenmiş şeyler için (bs_events akın dalgaları bunları kullanır):

-- server
exports.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 point
local n = exports.bs_zombies:EventCount('myres:wave1')
exports.bs_zombies:EventClear('myres:wave1', keepAsNormal)

Etiketli yürüyenler etiketliyken uzak temizlemeyi atlar. Yine de havuz sınırlarına sayılırlar, Streaming.PoolGuard.maxNetworked değerini aşarak doğuramazsınız. Ve doğma tabanı (her oyuncudan 100 m) hâlâ geçerlidir.

-- server
exports.bs_zombies:SafeZones() -- zone list
exports.bs_zombies:SafeZonesPadded()
exports.bs_zombies:Total() -- registry count
exports.bs_zombies:Heat(zoneId)
exports.bs_zombies:Snapshot()
BagÜzerinde
bsZombiepedkayıt kimliği. Varsa bizimdir
zType, zGait, zCrawl, zFeed, zReach, zState, zMhp, zGround, zApppedağ modu durumu
bsZombieDeadpedağ cesedi

Ağdaki bir yürüyeni asla kendiniz silmeyin. Sunucu beklenmeyen silmeleri izler, yakında bir oyuncu varsa yürüyeni yeniden oluşturur ve sahibini bs_guard’da işaretler (zombie_entity_deleted). Gitmelerini istiyorsanız olay etiketini ve EventClear’ı kullanın veya kayıttan isteyin.

bs_world’ün nüfus taraması bsZombie olan her şeyi zaten atlar. Kaynağınız da pedleri temizliyorsa önce IsWalkerPed’e bakın.

GlobalState.bsZombieMode, 'networked' veya 'legacy'’dir. Çoğu export ikisinde de aynı çalışır.