Szybka odpowiedź: zmniejsz otoczenie NPCs i ruch uliczny za pomocą małego zasobu klienta, który wywołuje natywne mnożniki gęstości w każdej klatce. Dołącz oba fxmanifest.lua i plik klienta Lua, zacznij od umiarkowanej wartości na etapie testów i zmierz tę samą trasę przed i po. Nie obiecuj zysku FPS: wynik zależy od szerszego obciążenia zasobów klienta i zasobów.
Czasami możesz chcieć zmniejszyć liczbę postaci niezależnych (NPC) lub ich gęstość w świecie gry, aby poprawić wydajność serwera lub stworzyć konkretne scenariusze rozgrywki. W tym poradniku pokażemy Ci, jak zmniejszyć liczbę NPC w FiveM.
Uwaga: Zmniejszenie gęstości NPC może wymagać znajomości skryptowania po stronie serwera w FiveM. Upewnij się, że masz dostęp administracyjny do swojego serwera FiveM oraz podstawową znajomość skryptowania w Lua.
Wymagania wstępne:
- Serwer FiveM. (Jak skonfigurować)
- Dostęp administracyjny do serwera.
- Edytor tekstu (np., Notepad++) do edycji skryptów Lua.
- Podstawowa znajomość skryptowania w Lua.
Kroki:
1. Uzyskaj dostęp do swojego serwera FiveM:
- Upewnij się, że masz dostęp SSH lub RDP do swojego serwera FiveM lub dostęp do jego panelu sterowania.
2. Znajdź folder resources:
- Przejdź do głównego katalogu swojego serwera FiveM.
- Znajdź folder “resources”; to tutaj znajdują się skrypty i zasoby twojego serwera.
3. Utwórz nowy skrypt Lua:
- W folderze “resources” utwórz nowy katalog, jeśli to konieczne, np. “npc_reducer”.”
- Wewnątrz
npc_reducer, utwórzfxmanifest.luai skrypt klienta, taki jakreduce_npc_density.lua. Manifest musi deklarować plik Lua jakoclient_scriptlub FiveM nie wykryje i nie załaduje go zgodnie z opisem poniżej.
4. Edytuj skrypt Lua:
- Otwórz plik “reduce_npc_density.lua” za pomocą preferowanego edytora tekstu.
- Dodaj do pliku następujący kod Lua:
Citizen.CreateThread(function() while true do Citizen.Wait(0) -- Adjust the number below to set the desired NPC density. local newDensity = 0.1 -- Modify this value as needed. SetVehicleDensityMultiplierThisFrame(newDensity) SetPedDensityMultiplierThisFrame(newDensity) SetRandomVehicleDensityMultiplierThisFrame(newDensity) SetParkedVehicleDensityMultiplierThisFrame(newDensity) SetScenarioPedDensityMultiplierThisFrame(newDensity, newDensity) end end)
- W powyższym kodzie możesz zmodyfikować zmienną
newDensity, aby kontrolować gęstość różnych typów NPC i pojazdów w świecie gry. Wartość1.0oznacza domyślną gęstość, podczas gdy mniejsze wartości ją zmniejszają.
5. Zapisz i zamknij skrypt Lua:
- Zapisz zmiany wprowadzone w skrypcie Lua i zamknij edytor tekstu.
6. Skonfiguruj swój server.cfg:
- Przejdź do głównego katalogu swojego serwera FiveM.
- Otwórz plik “server.cfg” za pomocą edytora tekstu.
- Dodaj następującą linię do pliku:
ensure npc_reducer
- Ta linia zapewnia, że skrypt “reduce_npc_density.lua” zostanie załadowany podczas uruchamiania serwera.
7. Uruchom ponownie swój serwer FiveM:
- Zapisz “plik ”server.cfg” i uruchom ponownie swój serwer FiveM, aby zastosować zmiany.
8. Dostosuj gęstość NPC w czasie rzeczywistym:
- Gdy twój serwer znów działa, możesz dostosować gęstość NPC w czasie rzeczywistym, modyfikując
newDensityzmienną w skrypcie Lua. Niższe wartości zmniejszą gęstość NPC, a wyższe ją zwiększą.
Pomyślnie nauczyłeś się, jak zmniejszyć liczbę NPC (gęstość) w FiveM, tworząc skrypt Lua i konfigurując serwer do jego ładowania. Może to pomóc w optymalizacji wydajności serwera lub stworzeniu określonych scenariuszy rozgrywki z mniejszą liczbą NPC na twoim serwerze GTA V FiveM.
Proszę, polub, udostępnij i skomentuj to, jeśli ci pomogło. :)
Powiązane zasoby
Dodaj wymagany manifest zasobu
Przewodnik po zasobach Lua Cfx.re mówi, że folder zasobu potrzebuje manifestu, aby zostać wykrytym, a client_script informuje środowisko wykonawcze klienta, który plik ma zostać załadowany. Dodaj to obok reduce_npc_density.lua:
fx_version 'cerulean'
game 'gta5'
client_script 'reduce_npc_density.lua'
Przykład używa SetPedDensityMultiplierThisFrame, SetScenarioPedDensityMultiplierThisFrame, SetVehicleDensityMultiplierThisFrame, SetRandomVehicleDensityMultiplierThisFrame I SetParkedVehicleDensityMultiplierThisFrame. Utrzymuj pętlę po stronie klienta i wstrzymuj się w każdej klatce, jak pokazano. Przetestuj zaludnione wnętrza, ruch drogowy pojazdów uprzywilejowanych, misje i skrypty zadań przed wdrożeniem, ponieważ zmniejszona populacja otoczenia może zmienić rozgrywkę, a także obciążenie.
Nie łącz tego podejścia z niedokumentowanymi popcycle.dat edycjami podczas tego samego testu. Zmieniaj jeden kontroler na raz, zapisuj wartość, porównuj wydajność klienta i przywracaj poprzedni zasób, jeśli zachowanie ulegnie pogorszeniu.
Główne odniesienia: Przewodnik po zasobach Cfx.re Lua oraz oficjalne repozytorium dokumentacji natywnej CitizenFX.
