Resource:Compiler/PL
Nazwa: Compiler
Deweloper: User:GalAnonim (Rick)
Stan: OpenSource
Źródło Github: https://github.com/httpRick/Compiler/tree/master
Serwer Discord: https://discord.gg/gJszaFjDQA
Aktualna wersja: 1.0.0
Omówienie
Prosty w użyciu zasób, którym można eksportować zarówno po stronie klienta jak i po stronie serwera. polegająca na szyfrowaniu/odszyfrowywaniu plików.
Wyeksportowane funkcje
fileCompile
Ta funkcja szyfruje dane pliku.
string exports.Compiler:fileCompile(string filePath, var key, [int maxBytes = 1024])
Wymagane Argumenty
- string filePath: filepath ścieżka do pliku w następującym formacie: ":nazwazasobu/ścieżka". 'nazwazasobu' to nazwa zasobu, w którym znajduje się plik, oraz 'path' to ścieżka do katalogu głównego zasobu z plikiem.
- Na przykład, jeśli w zasobie „objectSearch” znajduje się plik o nazwie „coolObjects.txt”, można go w ten sposób otworzyć z innego zasobu: fileOpen(":objectSearch/coolObjects.txt").
- Jeżeli plik znajduje się w bieżącym zasobie, wystarczy ścieżka do pliku np. fileOpen("coolObjects.txt").
- var key: Klucz, którego chcesz użyć jako klucza kodowania pliku (używanych jest pierwsze 16 znaków wyniku)
Opcjonalne Argumenty
- int maxBytes: Maksymalna liczba całkowita bajtów do zakodowania, domyślnie 1024 bajty. (nie zaleca się używania mniej niż 1024 bajtów)
Zwroty
Zwraca zaszyfrowane bajty, które zostały odczytane w pliku, jeśli coś się nie powiedzie zwraca false.
fileDecompile
Ta funkcja odszyfrowuje dane pliku.
string exports.Compiler:fileDecompile(string filePath, var key)
Wymagane Argumenty
- string filePath: filepath ścieżka do pliku w następującym formacie: ":nazwazasobu/ścieżka". 'nazwazasobu' to nazwa zasobu, w którym znajduje się plik, oraz 'path' to ścieżka do katalogu głównego zasobu z plikiem.
- Na przykład, jeśli w zasobie „objectSearch” znajduje się plik o nazwie „coolObjects.txt”, można go w ten sposób otworzyć z innego zasobu: fileOpen(":objectSearch/coolObjects.txt").
- Jeżeli plik znajduje się w bieżącym zasobie, wystarczy ścieżka do pliku np. fileOpen("coolObjects.txt").
- var key: Klucz, którego chcesz użyć jako klucza kodowania pliku (używanych jest pierwsze 16 znaków wyniku)
Zwroty
Zwraca odszyfrowane bajty, które zostały odczytane w pliku, jeśli coś się nie powiedzie zwraca false.
replaceCompileFile
Funkcja szyfruje i nadpisuje plik lub tworzy nowy w określonej nowej ścieżce.
boolean exports.Compiler:replaceCompileFile(string filePath, var key, [string newFilePath, int maxBytes])
Wymagane Argumenty
- string filePath: filepath ścieżka do pliku w następującym formacie: ":nazwazasobu/ścieżka". 'nazwazasobu' to nazwa zasobu, w którym znajduje się plik, oraz 'path' to ścieżka do katalogu głównego zasobu z plikiem.
- Na przykład, jeśli w zasobie „objectSearch” znajduje się plik o nazwie „coolObjects.txt”, można go w ten sposób otworzyć z innego zasobu: fileOpen(":objectSearch/coolObjects.txt").
- Jeżeli plik znajduje się w bieżącym zasobie, wystarczy ścieżka do pliku np. fileOpen("coolObjects.txt").
- var key: Klucz, którego chcesz użyć jako klucza kodowania pliku (używanych jest pierwsze 16 znaków wyniku)
Opcjonalne Argumenty
- string newFilePath: Docelowa nowa ścieżka utworzenia nowego pliku.
- int maxBytes: Maksymalna liczba całkowita bajtów do zakodowania, domyślnie 1024 bajty. (nie zaleca się używania mniej niż 1024 bajtów)
Zwroty
Zwraca true przy prawidłowym szyfrowaniu, jeśli coś się nie powiedzie zwraca false.
replaceDecompileFile
Funkcja odszyfrowuje i nadpisuje plik lub tworzy nowy w określonej nowej ścieżce.
boolean exports.Compiler:replaceDecompileFile(string filePath, var key, [string newFilePath])
Wymagane Argumenty
- string filePath: filepath ścieżka do pliku w następującym formacie: ":nazwazasobu/ścieżka". 'nazwazasobu' to nazwa zasobu, w którym znajduje się plik, oraz 'path' to ścieżka do katalogu głównego zasobu z plikiem.
- Na przykład, jeśli w zasobie „objectSearch” znajduje się plik o nazwie „coolObjects.txt”, można go w ten sposób otworzyć z innego zasobu: fileOpen(":objectSearch/coolObjects.txt").
- Jeżeli plik znajduje się w bieżącym zasobie, wystarczy ścieżka do pliku np. fileOpen("coolObjects.txt").
- var key: Klucz, którego chcesz użyć jako klucza kodowania pliku (używanych jest pierwsze 16 znaków wyniku)
Opcjonalne Argumenty
- string newFilePath: Docelowa nowa ścieżka utworzenia nowego pliku.
Zwroty
Zwraca true przy prawidłowym odszyfrowaniu, jeśli coś się nie powiedzie zwraca false.
Przykłady
fileCompile
function onResourceStart() local encryptedData = exports.Compiler:fileCompile("twojPlik.txt", "TwojeHaslo") if encryptedData then local fileHandler = fileCreate("twojPlik.txtc") fileWrite(fileHandler, encryptedData) fileClose(fileHandler) outputChatBox(encryptedData) outputChatBox("Pomyślnie zaszyfrowano twojPlik.txt") else outputChatBox("Nie udało się zaszyfrować twojPlik.txt") end end addEventHandler( "onResourceStart", resourceRoot, onResourceStart)
function onClientResourceStart() local txd = exports.Compiler:fileCompile("banshee.txd", "TwojeHaslo") local dff = exports.Compiler:fileCompile("banshee.dff", "TwojeHaslo") if txd and dff then local fileHandlerTxd = fileCreate("banshee.txdc") fileWrite(fileHandlerTxd, txd) fileClose(fileHandlerTxd) local fileHandlerDff = fileCreate("banshee.dffc") fileWrite(fileHandlerDff, dff) fileClose(fileHandlerDff) outputChatBox("Pomyślnie zaszyfrowany model banshee") else outputChatBox("Nie udało się zaszyfrować modelu banshee") end end addEventHandler( "onClientResourceStart", resourceRoot, onClientResourceStart)
fileDecompile
function onResourceStart() local decryptedData = exports.Compiler:fileDecompile("twojPlik.txtc", "TwojeHaslo") if decryptedData then outputChatBox(decryptedData) outputChatBox("Pomyślnie odszyfrowano twojPlik.txtc") else outputChatBox("Nie udało się odszyfrować twojPlik.txtc") end end addEventHandler( "onResourceStart", resourceRoot, onResourceStart)
function onClientResourceStart() local txd = exports.Compiler:fileDecompile("banshee.txdc", "TwojeHaslo") local dff = exports.Compiler:fileDecompile("banshee.dffc", "TwojeHaslo") if txd and dff then local loadTXD = engineLoadTXD(txd) engineImportTXD(loadTXD, 429) local loadDFF = engineLoadDFF(dff) engineReplaceModel(loadDFF, 429) outputChatBox("Pomyślnie odszyfrowano i wczytano model banshee") else outputChatBox("Nie udało się odszyfrować modelu banshee") end end addEventHandler( "onClientResourceStart", resourceRoot, onClientResourceStart)
replaceCompileFile
function onResourceStart() local isEncrypted = exports.Compiler:replaceCompileFile("twojPlik.txt", "TwojeHaslo", "twojPlik.txtc") if isEncrypted then outputChatBox("Pomyślnie zaszyfrowano i utworzono twojPlik.txtc") else outputChatBox("Nie udało się zaszyfrować twojPlik.txt") end end addEventHandler( "onResourceStart", resourceRoot, onResourceStart)
function onClientResourceStart() local isEncryptedTxd = exports.Compiler:replaceCompileFile("banshee.txd", "TwojeHaslo") local isEncryptedDff = exports.Compiler:replaceCompileFile("banshee.dff", "TwojeHaslo") if isEncryptedTxd and isEncryptedDff then outputChatBox("Pomyślnie zaszyfrowane i nadpisano pliki modelu banshee") else outputChatBox("Nie udało się zaszyfrować modelu banshee") end end addEventHandler( "onClientResourceStart", resourceRoot, onClientResourceStart)
replaceDecompileFile
function onResourceStart() local isDecrypted = exports.Compiler:replaceDecompileFile("twojPlik.txtc", "TwojeHaslo", "twojPlik.decrypted") if isEncrypted then outputChatBox("Pomyślnie odszyfrowano i utworzono twojPlik.decrypted") else outputChatBox("Nie udało się odszyfrować twojPlik.txtc") end end addEventHandler( "onResourceStart", resourceRoot, onResourceStart)
function onClientResourceStart() local isDecryptedTxd = exports.Compiler:replaceDecompileFile("banshee.txd", "TwojeHaslo") local isDecryptedDff = exports.Compiler:replaceDecompileFile("banshee.dff", "TwojeHaslo") if isDecryptedTxd and isDecryptedDff then outputChatBox("Pomyślnie odszyfrowano i nadpisano pliki modelu banshee") else outputChatBox("Nie udało się odszyfrować modelu banshee") end end addEventHandler( "onClientResourceStart", resourceRoot, onClientResourceStart)