Tool Quest decompiler

Stato
Discussione chiusa ad ulteriori risposte.

Luscha

Utente Platinum
21 Dicembre 2009
1,882
116
2,592
1,146
Salve a tutti e benvenuti in un nuova puntata della mia Road to 50 Release.

É pazzesco quanto sia difficile trovare roba da rilasciare, e si che di stronzate ne sviluppai parecchi... Mhhh.

Comunque, bando alle ciance e alla mia depressione per avere quasi finito le cose da usare come Release, oggi sono qui per regalarvi un tool che sarebbe dovuto esistere ormai da decenni... Si perchè ritengo inaccettabile che nel 2k18 ci siano ancora server (e spesso GRANDI) che utilizzano un locale/quest dove non tutti i sorgenti delle quest sono presenti...
Insomma, quando mi sono trovato a mettere mano a server dove per modificare una quest mi veniva chiesto di modificare un file in /object.... Bhe sono rabbrividito.

Per questa ragione ho sviluppato questo script Python (mamma mia quanto mi piace il python) che permette, data una merdosissima cartella /object, di ricostruire i file sorgenti che poi possono essere nuovamente ricompilati dal qc del server.

Onestamente essendo uno dei miei ultimi lavori svolti, cronologicamente parlando, sono abbastanza soddisfatto sia di come è stato fatto sia di come funziona al lato pratico (funziona.).

Lo script creerà una cartella nuova, tale "quest_decompiled", nella quale saranno storati sia i file generati dai vari processi che portano alla generazione del .quest, che tutti i .quest che possono venir generati dalla cartella object in questione.
Perchè sottolineo questo? Perchè uno dei problemi che si genera modificando gli object e non il .quest è che man mano che il server viene sviluppato o resta online la cartella si riempie di spazzatura, quindi fate un double check prima di ricompilare tutto e eliminate il garbage.

I benefici di avere l'intera locale/quest in sorgenti è, aihme, qualcosa che pochi possono apprezzare. Idealmente quando si cambia una quest o se ne elimina una, la cosa giusta da fare sarebbe eliminare l'intera /object e ricompilare tutto... Evitando che fine che non sapevate esistessero creino disagi e bug.

Detto questo, spero che questo tool venga usato, perchè onestamente... Mi viene da vomitare pensando che il 70% dei server aperti o che devono aprire hanno ancora la quest del join_war solo in object.... Ragazzi ripigliatevi!.

Funzionamento:
-Estrarre il qd in una cartella nuova
-Copiare la object nella stessa cartella del qd
-Lanciare il qd tramite python
-Sborrare sulla vostra locale/quest bella ordinata

Requisiti:
-Python 2.7

Download
 
Ultima modifica:
Ciao @Luscha , stavo provando il tuo decompilatore per l'object, su un server che volevo mettere a posto pulendo la maggior delle quest che non interessavano al game. Ma quando provo a lanciare il comando per il qd.py, dà quest'errore sulla macchina.
Type "help", "copyright", "credits" or "license" for more information.
>>> qd.py
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'qd' is not defined
>>> py qd.py
File "<stdin>", line 1
py qd.py
^
SyntaxError: invalid syntax
>>> python qd.py
File "<stdin>", line 1
python qd.py
^
SyntaxError: invalid syntax
>>>
Monto freebsd 10.3, con python2.7, mi sapresti indicare la soluzione al problema? Grazie

Mentre se faccio in quest'altro modo risponde cosi

root@LybertiMt2:/usr/game/share/locale/turkey/quest/ste # python2.7 qd.py
Traceback (most recent call last):
File "qd.py", line 232, in <module>
main()
File "qd.py", line 230, in main
DecompileQuests()
File "qd.py", line 220, in DecompileQuests
for quest in os.listdir(decompiled):
OSError: [Errno 2] No such file or directory: '\\quest_decompiled'
 
Ciao @Luscha , stavo provando il tuo decompilatore per l'object, su un server che volevo mettere a posto pulendo la maggior delle quest che non interessavano al game. Ma quando provo a lanciare il comando per il qd.py, dà quest'errore sulla macchina.
Type "help", "copyright", "credits" or "license" for more information.
>>> qd.py
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'qd' is not defined
>>> py qd.py
File "<stdin>", line 1
py qd.py
^
SyntaxError: invalid syntax
>>> python qd.py
File "<stdin>", line 1
python qd.py
^
SyntaxError: invalid syntax
>>>
Monto freebsd 10.3, con python2.7, mi sapresti indicare la soluzione al problema? Grazie

Mentre se faccio in quest'altro modo risponde cosi

root@LybertiMt2:/usr/game/share/locale/turkey/quest/ste # python2.7 qd.py
Traceback (most recent call last):
File "qd.py", line 232, in <module>
main()
File "qd.py", line 230, in main
DecompileQuests()
File "qd.py", line 220, in DecompileQuests
for quest in os.listdir(decompiled):
OSError: [Errno 2] No such file or directory: '\\quest_decompiled'
Modifica lo shabang dello script con il percorso assoluto dell'interprete python che hai installato.

Mentre per l'errore di no such file or directory, lo risolvi come faresti ogni volta: fai in modo che ci sia quel file o directory, in questo caso una cartella, dove evidentemente finiranno tutte le quest "decompilate". Scegli te se modificare lo script o creare la cartella a mano.
 
Dopo varie prove, effettuate, la cartella Object, deve essere rinominata in "\object". Così vi creerà la cartella "\quest_decompiled" così da avere la cartella con i file .quest e tanti altri file, prima di ricompilare tutto ;)
 
No. uno script in python non lo runni in quel modo, quella che hai aperto richiamando solo `python` e` l'interprete per testare delle funzionalita` al volo

python nomescript.py dal cmd/terminale e` quello che dovresti fare.
 
No. uno script in python non lo runni in quel modo, quella che hai aperto richiamando solo `python` e` l'interprete per testare delle funzionalita` al volo

python nomescript.py dal cmd/terminale e` quello che dovresti fare.
Si ho fatto python nomescript.py. Solo che all'inizio dava errori, poi ho modificato norme cartella con "/object", ed ha funzionato tutto ;)
 
Stato
Discussione chiusa ad ulteriori risposte.