escrow_ignore w fxmanifest: trzymaj config.lua i locale otwarte

Dla sprzedawców skryptów: jak escrow_ignore trzyma config.lua i pliki lokalizacyjne czytelne, co pozostaje otwarte, jak wgrać do portalu Cfx.re i przetestować zescrowed build.

Sprzedajesz skrypty, a nabywcy muszą zmienić konfigurację, plik języka lub mostek frameworku bez dotykania twojego kodu głównego. System escrow Cfx.re domyślnie szyfruje Lua, więc pliki, które nabywcy muszą edytować, muszą być oznaczone jako otwarte. To robi escrow_ignore, a ten przewodnik obejmuje jego użycie i testowanie wyniku.

Co escrow szyfruje

Gdy przesyłasz zasób do systemu escrow, twoje klienckie i serwerowe skrypty Lua są szyfrowane. Nabywcy je uruchamiają, ale nie mogą ich czytać. Pliki, które nie są kodem Lua, takie jak strony NUI, obrazy, audio, modele i zasoby stream/, są dostarczane takie, jakie są.

Wszystko, co nabywca musi skonfigurować, musi pozostać czytelne. Jeśli szyfrujesz config.lua, nikt nie może zmienić twoich cen ani kluczy. Dlatego prosisz escrow, aby to pominął.

Składnia escrow_ignore

W fxmanifest.lua:

lua
fx_version 'cerulean'
game 'gta5'

shared_script 'config.lua'
client_script 'client/main.lua'
server_script 'server/main.lua'

escrow_ignore {
    'config.lua',
    'locales/*.lua',
    'bridge/*.lua',
}

Ścieżki są względne do folderu zasobu, a * działa jako symbol wieloznaczny, więc locales/*.lua pozostawia każdy plik Lua w locales/ otwarty. Możesz również wymienić pojedyncze pliki.

Co pozostaje czytelne

Bądź deliberatny w kwestii tego, co otwierasz. Dobrymi kandydatami są:

  • config.lua: ceny, prace, nazwy przedmiotów, keybindy, przełączniki funkcji.
  • Pliki lokalizacyjne: aby nabywcy mogli tłumaczyć. Patrz tłumaczalne skrypty.
  • Pliki mostka frameworku: małe adaptery dla ESX, QBCore i QBox, aby nabywcy mogli połączyć swój własny framework lub niestandardowy ekwipunek.
  • Haki po stronie klienta dla innych skryptów, takie jak plik wyzwalający powiadomienie lub alert policji.

Trzymaj zamknięte wszystko, co jest rdzeniem produktu: logika, walidacja, wszystko, co decyduje o pieniądzach lub przedmiotach. Pamiętaj, że otwarte pliki są również otwarte na kopiowanie: nabywca może wkleić twoją konfigurację lub mostek do zasobu kogoś innego, dlatego nie umieszczaj w nich cennej logiki.

Porada: każdy otwarty plik to obciążenie wsparciem. Nabywca, który edytuje go źle, napisze do ciebie na ten temat, dlatego trzymaj otwarte pliki małe i dobrze skomentowane.

Wgranie do portalu Cfx.re

Escrow działa przez twoje konto Cfx.re:

  1. Przygotuj folder zasobu z prawidłowym fxmanifest.lua (nie starym __resource.lua; patrz fxmanifest vs resource.lua).
  2. W portalu Cfx.re otwórz sekcję zasobów i prześlij zasób jako zasób escrow. Portal szyfruje pliki, które nie są w escrow_ignore i trzyma resztę czytelną.
  3. Połącz zasób ze swoim sklepem, aby zakup dał kupującemu dostęp. Patrz sprzedawanie skryptów FiveM po stronie sklepu.

Menu portalu zmieniają się od czasu do czasu, dlatego postępuj zgodnie z bieżącą dokumentacją Cfx.re, aby poznać dokładne kroki przesyłania i limity.

Testowanie zescrowed buildu

Nigdy nie wysyłaj tego, co testowałeś tylko w folderze deweloperskim. Po wgraniu:

  1. Pobierz wersję zescrowed z powrotem z portalu, w taki sposób, jak byłaby odbierana przez nabywcę.
  2. Umieść go na czystym serwerze testowym z twoim własnym kluczem licencji powiązanym z kontem, które posiada zasób.
  3. Uruchom go i przejdź przez przepływ: otwarte pliki się ładują, zmiany konfiguracji mają zastosowanie, zdarzenia zarówno klienckie jak i serwerowe się uruchamiają.
  4. Zmień wartość w config.lua i uruchom ponownie, aby potwierdzić, że otwarty plik jest naprawdę podejmowany.
  5. Przetestuj na drugi frameworku, jeśli obsługujesz więcej niż jeden.

Jeśli zasób nie uruchamia się z komunikatem uprawnień, serwer testowy nie używa klucza konta, które posiada zasób. Escrow lack entitlement wyświetla przyczyny.

Zależności od otwartych plików

Gdy niektóre pliki są otwarte, a reszta zaszyfrowana, nadal dzielą zasób i muszą działać razem:

  • Otwarte pliki mogą używać globali i funkcji, które deklarują, normalnie. Przechowuj config.lua, który definiuje tylko tabelę Config, a zaszyfrowany kod czyta Config.
  • Kolejność ładowania to kolejność manifestu. Konfiguracja musi poprzedzać kod, który ją czyta, więc wymień ją jako shared_script pierwszy, jak powyżej.
  • Używaj exportów do komunikacji między twoim kodem a własnym zasobem kupującego, zamiast polegać na dzielonych globalach. Exporty są stabilne i udokumentowane; patrz exporty w Lua.
  • Zadeklaruj zależności (dependency 'ox_lib') w manifeście, aby brakująca biblioteka dała jasny błąd zamiast nil.

Nie otwieraj pliku, który działa tylko razem z zaszyfrowanym plikiem, który również zmieniłeś w tym samym wydaniu. Nabywcy, którzy edytowali otwarty, będą musieli scalić ręcznie.

Popularne problemy

  • Dodano nowy plik, ale wciąż zaszyfrowany: nie pasował do escrow_ignore. Sprawdź ścieżkę i symbol wieloznaczny.
  • Nabywcy mówią, że konfiguracja jest nieczytelna: plik był szyfrowany przy przesyłaniu. Napraw manifest i prześlij ponownie.
  • Działa dla ciebie, nie dla nabywcy: testowałeś otwartą kopię deweloperską; testuj pobraną kompilację escrow.

Lista kontrolna

Objaw Naprawa
Nabywcy nie mogą edytować config.lua Dodaj do escrow_ignore { } i prześlij ponownie
Nowy plik locale wciąż zaszyfrowany Użyj symbolu wieloznacznego, takiego jak locales/*.lua
Zescrowed build zachowuje się inaczej Testuj pobraną wersję, nie kopię dev
Wartości konfiguracyjne nie są odczytywane Wymień konfigurację jako shared_script przed kodem
Błąd uprawnień podczas testowania Użyj klucza konta, które posiada zasób
Cenna logika ujawniona Przenieś ją z otwartych plików do zaszyfrowanego rdzenia

Szybkie odpowiedzi

Co robi escrow_ignore?

Wyświetla pliki w twoim fxmanifest.lua, które system escrow Cfx.re musi pozostawić niezaszyfrowany, aby nabywcy mogli je czytać i edytować. Typowe przykłady to config.lua i pliki lokalizacyjne.

Czy nabywcy mogą edytować plik, który jest escrow_ignored?

Tak, jest dostarczany jako zwykły tekst, dokładnie tak jak go przesłałeś. Wszystko, co pozostawisz otwarte, może być również skopiowane i zmienione przez każdego, kto kupi skrypt.

Czy muszę testować wersję zescrowed?

Tak. Szyfrowanie może zmienić zachowanie, na przykład gdy otwarte i zaszyfrowane pliki się wywoływać. Uruchom kompilację pobraną z powrotem z portalu, a nie tylko twoją kopię deweloperską.

Skrypty bez tego problemu

Tebex TemplateMotyw premium dla twojego sklepu Tebex, bez kodu — edytowany w całości z panelu Tebex.Zobacz skrypt →Item Creator V2Twórz używalne przedmioty z animacjami, propami, efektami i nie tylko — bez pisania kodu.Zobacz skrypt →Shop CreatorZbuduj sklep w niecałą minutę — właściciele, pracownicy, sejfy i napady w zestawie.Zobacz skrypt →

Czytaj dalej