Decompilarea fișierelor rpyc și rpa

În acest articol voi discuta trei moduri de a decompila fișierele rpyc- și rpa. Aceste metode sunt simple și nu necesită software suplimentar, dar, din păcate, nu sunt universale și nu sunt omnipotent. Prin urmare, în cazul în care nu au putut face față cu arhivele existente la dispoziția dumneavoastră, nu fi descurajat, există alte instrumente și script-uri (de exemplu, unrpec sau rpatool), ei doar s-ar putea fi mai complicat de utilizat și necesită instalarea de software suplimentar.







Metoda 1. Utilitate de la furnizor (texte)

Acest utilitar este potrivit pentru cei care doresc să traducă un mic roman monolingv și nu doresc să înțeleagă scenariile.

1. Descărcați vendor_utils.zip. despachetați un dosar temporar (de exemplu, # 92; Katawa Shoujo # 92; _temp)
2. Copiați apoi fișierele de interes. De exemplu, script-a1-monday-RU.rpyc
3. Rulați GetText.bat. Obținem două fișiere: script-a1-RU.TXT-și luni script-a1-RU.BIN luni până
4. Elimină fișierul primit cu extensia TXT (în BIN nu ne urcăm.)
5. Începeți InsertText.bat. obțineți o nouă versiune a fișierului script-a1-monday-RU.rpyc
6. Mutati (acest lucru este important în cazul în care directorul temporar, creat de imbricate în directorul principal al jocului, altfel jocul va jura să duplicat, pentru că va găsi dvs. uitat în timp folderul rpyc-fișier și va încerca să se conecteze la proiect), noul script-a1 -manday-ru.rpyc înapoi.
7. Rulați jocul ...

Legătura cu sursa, din păcate, nu a putut găsi: (

Metoda 2. Utilitate de la lolbot'a (scripturi)

Acest utilitar vă permite să obțineți sursa tuturor scripturilor, inclusiv scripturi de sistem, și va fi potrivită pentru orice nivel al proiectului, dacă doriți doar să gestionați ...

1. Descărcați lolbot_decompile.zip. despachetați folderul cu jocul (ca rezultat, fișierul decompile.rpy din arhivă trebuie să fie în dosar # 92; de exemplu # 92; jocul Katawa Shoujo # 92;
2. Rulați jocul și așteptați până când jocul începe. Totul, poți ieși din joc. Au jucat :)
3. Dacă primele două elemente sunt executate fără erori, atunci în directorul rădăcină al jocului (de exemplu, # 92; Katawa shoujo), veți vedea un număr foarte mare de fișiere cu nume lungi astfel de _Users_delta_Documents_ks svn_Katawa shoujo Act 1_game_RU_ui_strings-RU.rpy.txt. Acesta este codul sursă în toată gloria sa. Este mai puțin lizibil decât cel obținut în metoda 1, dar puteți face orice. Inclusiv numele de personaje, meniuri și alte lucruri. Fișierul decompile.rpy din dosar # 92; jocul poate fi șters, altfel de fiecare dată când jocul va genera aceste numeroase fișiere.






4. După efectuarea modificărilor amintesc că motorul RenPy se generează acest rpyc fișier de rpy. Deci, în dosarul de joc, copiați fișierul deja corectat (de exemplu, _Users_delta_Documents_ks svn_Katawa shoujo Act 1_game_RU_ui_strings-RU.rpy.txt) și dau numele formei normale (de exemplu, ui_strings-RU.rpy)
5. Rulați jocul ...
6. După lansare, primim un fișier rpyc proaspăt generat, iar fișierul rpy poate fi șters

Evident, operațiile descrise mai sus pot fi efectuate pe alte fișiere, de exemplu, peste script-a1-monday-RU.rpyc.

Metoda 3. Scenariul din Eliont'a (grafica, sunet, fonturi etc.)

Pentru o mică poveste:

1. În dosar # 92; (de exemplu, # 92; Zaharurile Delight # 92; joc) script.rpyc redenumi fișiere, și (dacă este disponibilă) script.rpy în script.rpyc_ și script.rpy_. respectiv.
2. În dosar # 92; (de exemplu, # 92; Sugars Delight # 92;) creați un fișier script.rpy cu următorul conținut:

200? '200px': '' + (this.scrollHeight + 5) + 'px'); ">
init python:
image_files = # 91;
fn
pentru dir, fn în renpy.loader.listdirfiles (# 41;
în cazul în care nu fn.lower (# 41; .endswith ( "rpy." # 41, și nu fn.lower (# 41; .endswith ( "rpyc." # 41, și nu fn.lower (# 41; .endswith ( ".rpa" # 41; și nu fn.lower (# 41; .endswith (". rpyb" # 41;
dacă nu fn # 91; 0] == "_"
]

def unarchive (original_filename, new_filename # 41;:
import os
import os.path

new_filename = config.basedir + "/" + numele_filei noi
dirname = os.path.dirname (new_filename # 41;

dacă nu os.path.exists (dirname # 41;:
os.makedirs (dirname # 41;

orig = renpy.file (original_filename # 41;
new = fișier (new_filename, "wb" # 41;
new.write (orig.read (# 41; # 41;
new.close (# 41;
orig.close (# 41;

eticheta începe:
python:
pentru img în image_files:
dezarhivat (img, "extras /" + img # 41;
întoarcere

Pentru novela este mai mult.

0. Mai întâi, avem nevoie de codul sursă pentru scripturi, care poate fi obținut prin metoda 2.
1. Găsiți fișierul care conține eticheta etichetei:. Modificați extensia la fișierul original (de exemplu, ui_labels.rpyc este redenumit la ui_labels.rpyc_)
2. Copia obținută în a 2 metoda de același nume în fișierul director (de exemplu, ui_labels.rpy), în care blocul de ștergere de pornire la pornire eticheta:.
3. În dosar # 92; (de exemplu, # 92; jocul Katawa Shoujo # 92;) creați un fișier script.rpy cu următorul conținut:

200? '200px': '' + (this.scrollHeight + 5) + 'px'); ">
init python:
image_files = # 91;
fn
pentru dir, fn în renpy.loader.listdirfiles (# 41;
în cazul în care nu fn.lower (# 41; .endswith ( "rpy." # 41, și nu fn.lower (# 41; .endswith ( "rpyc." # 41, și nu fn.lower (# 41; .endswith ( ".rpa" # 41, și nu fn.lower (# 41; .endswith (# 41 "rpyb.";
dacă nu fn # 91; 0] == "_"
]

def unarchive (original_filename, new_filename # 41;:
import os
import os.path

new_filename = config.basedir + "/" + numele_filei noi
dirname = os.path.dirname (new_filename # 41;

dacă nu os.path.exists (dirname # 41;:
os.makedirs (dirname # 41;

orig = renpy.file (original_filename # 41;
new = fișier (new_filename, "wb" # 41;
new.write (orig.read (# 41; # 41;
new.close (# 41;
orig.close (# 41;

eticheta începe:
python:
pentru img în image_files:
dezarhivat (img, "extras /" + img # 41;
întoarcere


(codul este identic cu cel de mai sus)

200? '200px': '' + (this.scrollHeight + 5) + 'px'); margine: 10px; "> Material de la utilizatorul site-ului.







Trimiteți-le prietenilor: