A densidade de pedestres e tráfego ambiente pode ser reduzida por um recurso cliente que aplica multiplicadores de densidade a cada frame. Isso altera o mundo que os jogadores veem; não garante uma melhoria de desempenho do servidor ou de FPS. Verifique se seu recurso de população existente já controla essas configurações antes de adicionar outro.
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.
Crie o recurso
Crie resources/[local]/npc_reducer/. Adicione fxmanifest.lua:
fx_version 'cerulean'
game 'gta5'
client_script 'client.lua'
Adicione client.lua ao lado do manifesto. Este exemplo começa com metade do multiplicador padrão:
local density = 0.5
CreateThread(function()
while true do
Wait(0)
SetPedDensityMultiplierThisFrame(density)
SetScenarioPedDensityMultiplierThisFrame(density, density)
SetVehicleDensityMultiplierThisFrame(density)
SetRandomVehicleDensityMultiplierThisFrame(density)
SetParkedVehicleDensityMultiplierThisFrame(density)
end
end)
Inicie e ajuste
Adicione ensure npc_reducer à configuração do servidor. Para um recurso recém-criado, use o processo normal de atualização/início ou um reinício controlado do servidor. Verifique os logs do servidor e do F8 em busca de erros de carregamento.
Edite o valor e reinicie o recurso para carregar o código cliente alterado. A edição de um arquivo por si só não altera o código já em execução nos clientes conectados. Mantenha a espera do frame: esses efeitos nativos se aplicam ao frame atual.
Teste o efeito na jogabilidade
Compare a mesma rota antes e depois da mudança. Verifique o tráfego da cidade, veículos estacionados, cenários e trabalhos que dependem de pedestres do ambiente. Entidades de missão geradas por script podem ser controladas separadamente. Se outro script de população sobrescrever os valores, defina um único recurso responsável em vez de adicionar mais loops concorrentes.
Meça o tempo de frame do cliente e o custo do recurso usando a mesma cena. Para reverter, pare o recurso e remova sua entrada de inicialização; verifique o comportamento anterior da população após reconectar.
Referências
Primeiro recurso Lua do Cfx.re; Documentação das funções nativas do CitizenFX.