API зомби
bs_zombies большой, но другим ресурсам нужен короткий список. Всё описано на странице API bs_zombies с файлом и строкой.
Этот пед - зомби?
Заголовок раздела «Этот пед - зомби?»Клиент:
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 отвечают также по statebag bsZombie для сетевого педа, которого этот клиент ещё не принял. Используйте их, не проверяйте модели, модель может быть ванильной.
Другие клиентские помощники: Live() (таблица принятых ходячих), Count(), HostedCount(), HasWalker(id), IsBeingAttacked(), HordeActive(), PlayerProtectedInVehicle().
Урон зомби из вашего кода
Заголовок раздела «Урон зомби из вашего кода»Здоровьем владеет серверный реестр. Урон от клиента сообщает стрелок, но для того, чем владеете вы на сервере (турель, ловушка), идите через:
-- serverexports.bs_zombies:GadgetHit(src, walkerId, damage, x, y, range, weapon)Он проверяет, что ходячий в пределах range от x, y. Его использует турель bs_gadgets, смотрите bs_gadgets/server (клиент находит цель, сервер проверяет скорострельность и патроны, затем GadgetHit).
Притянуть ходячих к точке:
-- serverexports.bs_zombies:EventNoise(x, y, z, loud)Гаджет-приманка вызывает это на каждом импульсе.
Спавн по событиям
Заголовок раздела «Спавн по событиям»Для скриптовых событий (их используют волны орд bs_events):
-- 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)Помеченные ходячие пропускают дальнее отсечение, пока помечены. Они всё равно учитываются в лимитах пула, нельзя заспавнить сверх Streaming.PoolGuard.maxNetworked. И минимальная дистанция спавна (100 м от каждого игрока) по-прежнему действует.
Информация о мире
Заголовок раздела «Информация о мире»-- serverexports.bs_zombies:SafeZones() -- zone listexports.bs_zombies:SafeZonesPadded()exports.bs_zombies:Total() -- registry countexports.bs_zombies:Heat(zoneId)exports.bs_zombies:Snapshot()Statebag’и
Заголовок раздела «Statebag’и»| Bag | На | |
|---|---|---|
bsZombie | пед | id в реестре. Если он есть, это наш |
zType, zGait, zCrawl, zFeed, zReach, zState, zMhp, zGround, zApp | пед | состояние сетевого режима |
bsZombieDead | пед | сетевой труп |
Никогда не удаляйте сетевого ходячего сами. Сервер отслеживает неожиданные удаления, пересоздаёт ходячего, если рядом игрок, и отмечает владельца в bs_guard (zombie_entity_deleted). Если они нужны удалёнными, используйте тег события и EventClear или обратитесь к реестру.
Зачистка населения в bs_world уже пропускает всё с bsZombie. Если ваш ресурс тоже чистит педов, сначала проверьте IsWalkerPed.
GlobalState.bsZombieMode - 'networked' или 'legacy'. Большинство экспортов работают одинаково в обоих.
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.