İçeriğe geç

Zombiler

Zombiler bs_zombies’tır. Açık ara en büyük resource. Nasıl çalıştığının kısa hâli: sunucu, her yürüyenin listesini (kayıt), canlarını ve onları kimin barındırdığını tutar. Oyuncular yalnızca yakınlarındaki yürüyenlerin ped’lerini görür. Her şey resources/[beyond]/bs_zombies/config/ içinde.

Zombies.Types içinde üç tür var (config_zombies.lua): walker, brute, crawler. Crawler’lar için nutria_crawl_anims resource’u bs_zombies’ten önce başlatılmış olmalı, yoksa ayağa kalkarlar.

-- bs_zombies/config/config_net.lua
Zombies.Mode = 'networked' -- or 'legacy'
  • networked (varsayılan) - yürüyen başına sunucunun oluşturduğu bir gerçek OneSync ped’i. Herkes aynı zombiyi aynı yerde görür. OneSync sahipliği yakındaki bir istemciye aktarır ve yalnızca sahip onun yapay zekâsını çalıştırır.
  • legacy - eski yol. Her istemci kendi yerel ped’lerini oluşturur ve konumları geri bildirir. Ağ modu sorun çıkarırsa kullan, yalnızca bs_zombies’in yeniden başlatılması, başka bir şey değil.

F1 konsolundan da değiştirebilirsin (Zombiler kategorisi), bs_zombies’in yeniden başlatılması gerekir.

Aynı anda kaç yürüyen gerçek bir ped alır:

cap = min(hardCap, baseCap + perPlayerCap * (players - 1))
AnahtarVarsayılanAnlamı
promoteRadius300herhangi bir oyuncunun bu mesafesindeki yürüyen bir ped alır
demoteHysteresis60yarıçap + bu değer içinde kimse yoksa ped kaldırılır
baseCap24çevrimiçi bir oyuncuyla
perPlayerCap18her ek oyuncu için eklenir
hardCap160asla bundan fazla değil
perPlayerNear34bir oyuncunun çevresinde azami
perfBudgetMs70sunucunun ortalama kare süresi bunu geçerse limit düşer
perfMinFactor0.35…ama asla bu oranın altına inmez
entitySoft / entityHard1400 / 1900toplam ped+nesne+araç. Arasında limit küçülür, hard’da en uzaktaki yürüyenler kaldırılır
fpsGood / fpsLow / lowFpsFactor45 / 25 / 0.5düşük FPS’li bir oyuncunun çevresinde daha az yürüyen olur
corpseSeconds120ağ cesetlerinin ömrü
simDensityScale0.35ağ modunda simülasyon nüfusu bununla ölçeklenir (yeniden başlatma)

hardCap’i yükseltirsen Streaming.PoolGuard.maxNetworked değerini de yükselt (varsayılan 96), kaç yürüyen kaydının var olabileceğini sınırlar.

config_streaming.lua içinden:

AnahtarVarsayılan
Streaming.spawnMin / spawnMax200 / 300yürüyenler bir oyuncunun çevresindeki bu halkada doğar
Streaming.PoolGuard.minSpawnDistance100hiçbir oyuncuya bundan yakın bir yerde bir şey doğmaz
Zombies.Settings.spawnDistanceMin100aynı alt sınır, sektör tarafında
Streaming.PoolGuard.maxPerPlayer28her oyuncunun çevresinde sayılan yürüyenler
Streaming.PoolGuard.clientPedLimit180istemci bu ped havuzu boyutunda ped oluşturmayı bırakır
Streaming.PoolGuard.clientMaxLocal40bir istemcinin tuttuğu azami yürüyen ped’i (legacy)
Streaming.cleanupDistance480

Doğma alt sınırı spawnDistanceMin, minSpawnDistance ve 100’ün en büyüğüdür. Yani zombiler yetkili zorla doğurması dışında asla suratında belirmez.

Güvenli bölgelerde hiçbir şey doğmaz (config_zones.lua). Zombiler hiç tırmanmaz da. Bu Zombies.Mobility, lütfen açma, çatılara tırmanıp takılıyorlar.

Harita, uyanıp uyuyan sektörlere bölünmüştür. Onları nodes resource’unun sunduğu bir web sayfası olan sektör haritası panelinde düzenlersin. İlk açılışta konsola anahtarlı URL’yi yazdırır. Kendi anahtarını istersen:

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

set kullan, setr değil. setr convar’ı her istemciye gönderir ve sonra her oyuncuda anahtarın olur.

Yetkililerin ayrıca oyun içinde simülasyonun canlı haritası olan /atlas (bs_atlas) komutu var.

Silah sesleri, arabalar, decoy gadget’ı, olaylar: hepsi gürültü yapar ve gürültü yürüyenleri çeker (config_noise.lua, Zombies.NoiseSources). Susturucular silah gürültüsünü çok keser (Weapons.Effects.suppressor.noiseScale = 0.28). Sürüler Zombies.Horde içinde, dünya olaylarının sürü dalgaları Dünya olayları sayfasında.

KomutTarafNe
/znetsunucu, yetkiliağ sayısı, limit ve nedeni, kare ortalaması, entity sayımı, yakınındaki sayı
/zsyncsunucu, yetkilioyuncu başına, yakındaki sunucu yürüyenleri ve istemcinin gerçekten sahip olduğu ped’ler
/zdiagsunucugenel durum, /znet satırlarını içerir
/zstatus, /zsim, /znodes, /sectorsunucuyönetmen, simülasyon, düğümler, senin sektörün
/zclearsunucuyürüyenleri temizle
/znetc, /zgaitistemcidevralınan ağ yürüyenleri, sahip, yürüyüş
/poolsistemciped havuzu kullanımı
/safezonesistemcigüvenli bölge dairelerini çiz

Tam liste bs_zombies API sayfasında.

  1. Zombies.Mode = 'legacy' yap (F1 ya da dosya), ensure bs_zombies. Bitti.
  2. Gördüğünü /znet ve /zsync çıktısıyla bildir, ilk soracağım şey bu.