Para reduzir aeronaves ambiente selecionadas no FiveM, crie um recurso de cliente que chame SetVehicleModelIsSuppressed para uma lista explícita de hashes de modelo. Isso visa a geração natural desses modelos; não é um sistema de permissão e não garante que outro recurso não possa criar a mesma aeronave.
A configuração e os exemplos de código aqui são voltados ao FiveM para GTA V Legacy. O Enhanced tem regras diferentes de runtime e de compatibilidade; verifique as alterações de Legacy para Enhanced do Cfx.re antes de aplicá-las a um servidor Enhanced.
Teste cada modelo no cliente FiveM atual e na versão do jogo. O comportamento nativo e a população ambiente podem diferir por local e versão. Mantenha a lista de modelos pequena e preserve um rollback.
Crie o recurso
Crie resources/[local]/ambient_aircraft_control com estes dois arquivos.
fxmanifest.lua:
fx_version 'cerulean'
game 'gta5'
author 'Your name'
description 'Suppress selected ambient aircraft models'
version '1.0.0'
client_script 'client.lua'
client.lua:
local suppressedModels = {
`luxor`,
`shamal`,
`maverick`,
`frogger`,
}
CreateThread(function()
for i = 1, #suppressedModels do
SetVehicleModelIsSuppressed(suppressedModels[i], true)
end
end)
AddEventHandler('onResourceStop', function(resourceName)
if resourceName ~= GetCurrentResourceName() then
return
end
for i = 1, #suppressedModels do
SetVehicleModelIsSuppressed(suppressedModels[i], false)
end
end)
Os valores entre acentos graves são hashes calculados pelo CfxLua durante a compilação. A Cfx.re documenta o ambiente de execução e os formatos atuais de manifesto no guia do CfxLua e na referência de manifestos de recursos.
Escolha o escopo deliberadamente
Inclua apenas modelos que você observou surgindo no ambiente e que realmente deseja suprimir. Os nomes de exemplo são modelos ilustrativos de aeronaves do GTA V, não uma lista universal recomendada. Uma missão roteirizada, um comando de administrador ou uma loja de veículos ainda podem criar um modelo suprimido. Se o objetivo é controlar o acesso do jogador, aplique isso no recurso autoritativo do lado do servidor que concede ou gera veículos.
Não execute o nativo a cada quadro
O estado de supressão não exige um loop sem atraso nesse recurso. Aplique-o quando o recurso iniciar e reverta-o quando o recurso parar. Um loop permanente com Wait(0) acrescenta trabalho sem comprovar um comportamento melhor.
Teste antes da produção
- Faça backup do recurso de tráfego ou população existente.
- Adicione
ensure ambient_aircraft_controlem um servidor de desenvolvimento. - Execute
refresheensure ambient_aircraft_control. - Observe os locais conhecidos de aeronaves ambientais por tempo suficiente para comparar as mesmas condições antes e depois.
- Gere uma aeronave através de qualquer fluxo de trabalho scriptado aprovado para confirmar se esse uso separado deve permanecer disponível.
- Pare o recurso e verifique se o estado de supressão foi revertido.
Quando a supressão não é suficiente
Se outro recurso criar aeronaves repetidamente, altere a configuração desse recurso ou o caminho de spawn autorizado pelo servidor. Se você precisar de mudanças mais amplas na densidade, trate-as como uma tarefa separada de gerenciamento de população e meça os efeitos colaterais no tráfego, missões e outros recursos. Não combine nativos de densidade não relacionados nesta pequena correção sem um teste específico.