Установка
DS-Death заменяет стандартный цикл смерти/нокаута/поднятия в твоей работе скорой помощи. Установка в основном drag-and-drop, плюс пара небольших правок в esx_ambulancejob или qb-ambulancejob, чтобы существующий поток поднятия передавал управление DS-Death.
Скачивание
Скачай скрипт с portal.cfx.re. Убедись, что ты вошёл под тем аккаунтом FiveM, с которого покупал скрипт.
Распаковка
Распакуй архив и положи получившуюся папку DS-Death в любое место внутри папки resources своего сервера.
mysql-async. ESX и QBCore оба поддерживаются и определяются автоматически во время работы.Выполни SQL
Выполни SQL-файл, соответствующий твоему фреймворку. Он добавляет один столбец ds_death, в котором состояние смерти сохраняется между переподключениями.
ESX
Выполни INSTALLATION_GUIDE/ESX.sql в своей базе данных: он добавит ds_death TINYINT(1) в таблицу users.
QBCore
Выполни INSTALLATION_GUIDE/QBCore.sql в своей базе данных: он добавит ds_death TINYINT(1) в таблицу players.
Установи предмет для поднятия
DS-Death нужен item aidkit, чтобы поднимать игроков в нокауте. Добавь его в тот инвентарь, который у тебя стоит.
ESX (стандартный инвентарь)
Выполни INSTALLATION_GUIDE/INSTALL_ITEM/ESX/item.sql в своей базе данных, чтобы зарегистрировать предмет.
ESX (ox_inventory)
Открой INSTALLATION_GUIDE/INSTALL_ITEM/ESX/OX_INVENTORY_ITEM.md, скопируй фрагмент и вставь его в ox_inventory/data/items.lua:
['aidkit'] = {
label = 'Aid Kit',
weight = 100,
stack = true,
consume = 0,
allowArmed = true
},QBCore
Открой INSTALLATION_GUIDE/INSTALL_ITEM/QBCORE/item.md, скопируй фрагмент и вставь его в qb-core/shared/items.lua:
['aidkit'] = {['name'] = 'aidkit', ['label'] = 'Aid Kit', ['weight'] = 0, ['type'] = 'item', ['image'] = 'aidkit.png', ['unique'] = false, ['useable'] = false, ['shouldClose'] = false, ['combinable'] = nil, ['description'] = 'Useful to revive knocked people'},aidkit поменяй ItemRevive и ItemLabel в config.lua.Правки в работе скорой
DS-Death забирает на себя поток смерти и поднятия, поэтому существующие обработчики в esx_ambulancejob / qb-ambulancejob нужно удалить или перенаправить. Конкретные блоки для удаления и замены лежат внутри resource:
ESX (esx_ambulancejob)
Следуй INSTALLATION_GUIDE/ESX.txt, всего три правки:
- esx_ambulancejob/client/main.lua: удали (или закомментируй) обработчик
esx:onPlayerSpawn, который сбрасываетisDead. - esx_ambulancejob/client/main.lua: замени обработчик события
esx_ambulancejob:reviveодной строкой, которая передаёт управление DS-Death:esx_ambulancejob/client/main.luaRegisterNetEvent('esx_ambulancejob:revive') AddEventHandler('esx_ambulancejob:revive', function() TriggerEvent('DS-Death:revive') end) - esx_ambulancejob/client/job.lua: в функции
revivePlayerзамениif IsPedDeadOrDying(closestPlayerPed, 1) thenнаif closestPlayerPed then, чтобы состояние нокаута из DS-Death считалось поднимаемым.
QBCore (qb-ambulancejob)
Следуй INSTALLATION_GUIDE/QBCORE.txt, две правки:
- qb-ambulancejob/server/main.lua: удали (или закомментируй) существующий блок
QBCore.Commands.Add("revive", ...). DS-Death регистрирует свою команду. - qb-ambulancejob/client/dead.lua: удали обработчик
gameEventTriggered, который запускает laststand / таймер смерти. DS-Death заменяет этот поток.
esx_ambulancejob / qb-ambulancejob перед редактированием, чтобы можно было откатиться, если что-то ещё в твоей сборке зависит от старого поведения.Выдай права администратора
QBCore
Добавь ace-право в свой server.cfg, чтобы админы могли пользоваться командами поднятия:
add_ace group.admin ds_death allowESX
Права задаются массивом AuthorizedGroup в config.lua. Значение по умолчанию {'admin'} покрывает большинство сборок.
Запуск resource
Добавь скрипт в свой server.cfg:
ensure DS-DeathDS-Death.Настройка
Открой config.lua и настрой скрипт под свой сервер. Самые полезные параметры:
- KnockoutTime / RespawnTime: сколько игроки лежат в нокауте и когда становится доступен респавн.
- HeadShotDeath: пропустить стадию нокаута и убивать сразу при попадании в голову.
- RespawnPosition / RespawnSamePos / RespawnCost: где игроки возвращаются и стоит ли респавн наличных или денег в банке.
- CombatLogging: либо оставлять игрока мёртвым при перезаходе (
CheckDeath), либо автоматически респавнить его (RespawnOnJoin). - RemoveItemsAfterRPDeath: выбрасывать деньги, оружие и предметы при RP-смерти, с белым списком
KeepItemsдля вещей вроде документов. - Progressbar:
NATIVE,RPROGRESSилиCUSTOM(свой вариант подключается вCustomProgress/StopCustomProgress). - EMSCall: положи внутрь этой функции триггер звонка своего телефона, чтобы вызов EMS в мире уходил в телефон, а не в стандартное уведомление.
- EnableLogs: включи логи через вебхук Discord и настрой их в
webhooks.lua.
OnKnocked, OnDeath, OnRevive и OnRespawn в config.lua — пустые функции, готовые под твои триггеры и экспорты. CanDie позволяет отключать цикл смерти по условию: пригодится для зон с мини-играми, страйкбольных ивентов или PvP-арен.