Instalação
O DS-Death substitui o loop padrão de morte/nocaute/reanimação do seu ambulance job. A instalação é quase toda drag-and-drop, com alguns patches pequenos no esx_ambulancejob ou no qb-ambulancejob para que o fluxo de reanimação existente passe a bola para o DS-Death.
Download
Baixe o script em portal.cfx.re. Confirme que você está logado com a conta FiveM que usou na compra.
Extração
Descompacte o arquivo e solte a pasta DS-Death resultante em qualquer lugar dentro da pasta resources do seu servidor.
mysql-async. ESX e QBCore são suportados e detectados automaticamente em tempo de execução.Rode o SQL
Execute o arquivo SQL correspondente ao seu framework. Ele adiciona uma única coluna ds_death, usada para manter o estado de morte entre desconexões.
ESX
Execute INSTALLATION_GUIDE/ESX.sql no seu banco de dados: adiciona ds_death TINYINT(1) à tabela users.
QBCore
Execute INSTALLATION_GUIDE/QBCore.sql no seu banco de dados: adiciona ds_death TINYINT(1) à tabela players.
Instale o item de reanimação
O DS-Death precisa de um item aidkit para reanimar jogadores nocauteados. Adicione ele ao inventário que você usa.
ESX (inventário padrão)
Execute INSTALLATION_GUIDE/INSTALL_ITEM/ESX/item.sql no seu banco de dados para registrar o item.
ESX (ox_inventory)
Abra INSTALLATION_GUIDE/INSTALL_ITEM/ESX/OX_INVENTORY_ITEM.md, copie o trecho e cole em ox_inventory/data/items.lua:
['aidkit'] = {
label = 'Aid Kit',
weight = 100,
stack = true,
consume = 0,
allowArmed = true
},QBCore
Abra INSTALLATION_GUIDE/INSTALL_ITEM/QBCORE/item.md, copie o trecho e cole em 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'},ItemRevive e ItemLabel no config.lua em vez de instalar o aidkit.Aplique os patches no seu ambulance job
O DS-Death assume o fluxo de morte/reanimação, então os handlers existentes no esx_ambulancejob / qb-ambulancejob precisam ser removidos ou redirecionados. Os blocos exatos para apagar e substituir vêm dentro da resource:
ESX (esx_ambulancejob)
Siga INSTALLATION_GUIDE/ESX.txt, três edições no total:
- esx_ambulancejob/client/main.lua: remova (ou comente) o handler
esx:onPlayerSpawnque reseta oisDead. - esx_ambulancejob/client/main.lua: substitua o handler do event
esx_ambulancejob:revivepor uma única linha que passa a bola para o 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: na função
revivePlayer, troqueif IsPedDeadOrDying(closestPlayerPed, 1) thenporif closestPlayerPed then, para que o estado nocauteado do DS-Death conte como reanimável.
QBCore (qb-ambulancejob)
Siga INSTALLATION_GUIDE/QBCORE.txt, duas edições:
- qb-ambulancejob/server/main.lua: remova (ou comente) o bloco
QBCore.Commands.Add("revive", ...)existente. O DS-Death registra o dele. - qb-ambulancejob/client/dead.lua: remova o handler
gameEventTriggeredque roda o laststand / o timer de morte. O DS-Death substitui esse fluxo.
esx_ambulancejob / qb-ambulancejob original antes de editar, para poder voltar atrás se alguma outra coisa da sua stack depender do comportamento antigo.Conceda as permissões de admin
QBCore
Adicione a permissão ace ao seu server.cfg para que os admins possam usar os comandos de reanimação:
add_ace group.admin ds_death allowESX
As permissões são tratadas pelo array AuthorizedGroup no config.lua. O padrão {'admin'} já cobre a maioria das configurações.
Inicie a resource
Adicione o script ao seu server.cfg:
ensure DS-DeathDS-Death na ordem de carregamento.Configuração
Abra config.lua e ajuste o script ao seu servidor. As opções mais úteis:
- KnockoutTime / RespawnTime: quanto tempo os jogadores ficam nocauteados e a partir de quando o respawn fica disponível.
- HeadShotDeath: pula o estado de nocaute e mata na hora em um headshot.
- RespawnPosition / RespawnSamePos / RespawnCost: onde os jogadores voltam e se o respawn custa dinheiro em espécie ou no banco.
- CombatLogging: ou manter o jogador morto ao reconectar (
CheckDeath) ou fazer ele renascer automaticamente (RespawnOnJoin). - RemoveItemsAfterRPDeath: derruba dinheiro, armas e itens na morte de RP, com uma whitelist
KeepItemspara coisas como documentos. - Progressbar:
NATIVE,RPROGRESSouCUSTOM(conecte a sua emCustomProgress/StopCustomProgress). - EMSCall: coloque o trigger de chamada do seu celular dentro dessa função para que a chamada do EMS no mundo passe pelo seu celular em vez da notificação padrão.
- EnableLogs: liga os logs por webhook do Discord, configurados em
webhooks.lua.
OnKnocked, OnDeath, OnRevive e OnRespawn no config.lua são funções vazias, prontas para você plugar seus próprios triggers/exports. O CanDie permite desativar o loop de morte de forma condicional: útil para áreas de minigame, eventos de airsoft ou arenas de PvP.