Jak zmniejszyć gęstość NPC w FiveM

Jak bezpiecznie zmniejszyć gęstość NPC w FiveM

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:

  1. Serwer FiveM. (Jak skonfigurować)
  2. Dostęp administracyjny do serwera.
  3. Edytor tekstu (np., Notepad++) do edycji skryptów Lua.
  4. 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órz fxmanifest.lua i skrypt klienta, taki jak reduce_npc_density.lua. Manifest musi deklarować plik Lua jako client_script lub 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.0 oznacza 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:

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 newDensity zmienną 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.

Dodaj komentarz