Wróć do bloga
Tutorial2 min czytania

Poradnik fxmanifest.lua: Opanuj manifest zasobów FiveM

Pisz czysty fxmanifest.lua za każdym razem. Skrypty, strony UI, zależności, pliki współdzielone i wszystkie klucze kluczowe dla nowoczesnych zasobów FiveM.

Agency Scripts

Założyciel i główny deweloper w Agency Scripts

Czym jest fxmanifest.lua?

Każdy zasób FiveM wymaga pliku manifestu, który informuje serwer, co zawiera zasób i jak go załadować. Plik fxmanifest.lua plik zastępuje starszy __resource.lua format i zapewnia przejrzysty, deklaratywny sposób definiowania metadanych twojego resource'a. Ten plik określa, które skrypty działają po stronie klienta, które po stronie serwera, jakie pliki NUI dołączyć, zależności resource'a oraz dodatkowe metadane. Prawidłowe skonfigurowanie manifestu jest kluczowe, ponieważ błędy w tym miejscu mogą uniemożliwić załadowanie całego resource'a.

Wymagane pola

Każdy manifest musi zaczynać się od dwóch wymaganych pól: fx_version i games. Ten fx_version określa wersję formatu manifestu, przy czym 'cerulean' będąc aktualnym standardem obsługującym wszystkie nowoczesne funkcje. Ten games pole określa, którą grę obsługuje resource, zazwyczaj {'gta5'} dla FiveM. Pominięcie któregokolwiek z tych pól spowoduje, że resource w ogóle się nie załaduje, dlatego zawsze umieszczaj je w pierwszych dwóch linijkach swojego manifestu.

Deklaracje skryptu

Użyj client_scripts, server_scripts, oraz shared_scripts aby zadeklarować swoje pliki Lua. Skrypty client działają na kliencie gry gracza i odpowiadają za renderowanie, sterowanie oraz lokalną interakcję z grą. Skrypty server działają na serwerze i obsługują autorytatywną logikę, operacje bazodanowe oraz zarządzanie graczami. Skrypty shared działają po obu stronach i przydają się do plików konfiguracyjnych, funkcji pomocniczych i współdzielonych stałych. Możesz używać wzorców glob, takich jak 'client/*.lua' aby uwzględnić wszystkie pliki w katalogu, jednak jawne listy plików dają kontrolę nad kolejnością ładowania.

Deklaracje NUI i plików

Jeśli twój zasób zawiera interfejs użytkownika, zadeklaruj wejściowy plik HTML za pomocą ui_page 'html/index.html'. Następnie wymień wszystkie zasoby sieciowe potrzebne dla UI w files tabela, w tym HTML, CSS, JavaScript, obrazy i czcionki. Tylko pliki wymienione tutaj będą dostępne dla przeglądarki NUI. Użyj wzorców glob, takich jak 'html/**/*' aby uwzględnić całe katalogi. Pamiętaj, że pliki NUI są przesyłane do klienta podczas ładowania zasobu, dlatego dbaj o optymalizację zasobów webowych, aby skrócić czas pobierania i zużycie transferu.

Zależności i kolejność ładowania

Deklaruj zależności zasobów za pomocą dependencies pole, aby upewnić się, że wymagane resources uruchomią się przed Twoim. Do typowych zależności należą resources frameworka, takie jak qb-core lub es_extended, zasoby bazy danych, takie jak oxmysql, oraz współdzielone biblioteki. Jeśli zależność nie zostanie uruchomiona, Twój zasób nie załaduje się i zarejestruje ostrzeżenie w logach. Użyj provide aby wskazać, że twój zasób służy jako zamiennik innego, co jest przydatne przy tworzeniu framework bridges lub alternatywnych implementacji popularnych skryptów.

Zaawansowane funkcje manifestu

Manifest obsługuje kilka dodatkowych dyrektyw dla specjalistycznych zastosowań. Użyj data_file aby ładować pliki danych GTA, takie jak weapon metas, pliki handling lub dane modeli pojazdów. Wpis export i server_export pola deklarują funkcje, które mogą wywoływać inne resources. Dodaj metadane za pomocą description, author, oraz version pola w celach dokumentacyjnych. lua54 dyrektywa włącza funkcje Lua 5.4 po ustawieniu na 'yes', dając Ci dostęp do dzielenia całkowitoliczbowego, operatorów bitowych i innych usprawnień języka, które mogą uprościć złożone skrypty.

Gotowy, aby zacząć?

Kup skrypty w naszym sklepie lub dołącz do Discorda, aby uzyskać wsparcie, aktualizacje i sprawdzić nadchodzące nowości.