PYC Fájlok használata

Indította [VIP]Disco, 2013-07-03, 23:48:40

2013-07-03, 23:48:40 Utolsó szerkesztés: 2013-07-03, 23:50:21 Szerző: [VIP]Disco
A legújabb 2013-as Metin2.SG kliens is pyc, azaz  tömörített py fájlokat használ, amelyeket nem lehet megnyitni dekódolás nélkül. Ebben a témában az lesz bemutatva, hogy hogyan lehet tömöríteni a py fájlokat majd azokat meghívni a kliensben.


Mire lesz szükséged?

  - Metin2 File Archiver
    - Python 2.2
      - Notepad++


Fájlok előkészítése & tömörítése

Miután feltelepítetted a szükséges programokat csomagold ki a root.epk/eix-et a kliensed root könyvtárából, majd nyisd meg a telepített Python 2.2 gyökérkönyvtárát. Most menj vissza a kicsomagolt fájlokhoz és másold át az összes .py kiterjesztésű fájlt a system.py kivételével a Python 2.2 gyökérkönyvtárába. py-t tömöríteni pyc-be nagyon könnyű, egyszerűen csak nyisd meg a python.exe-t és írd be, hogy import <pyneve.py>. Most láthatod, hogy elkészült a Python könyvtárában egy *.pyc kiterjesztésű fájl ami már a csomagolt verziója annak amit az előbb meghívtál. Most egyszerűen csak csináld végig ezt a többi py-vel is. Amikor elkészült az összessel másold be a kicsomagolt root-ba az összes elkészült .pyc fájlt és töröld ki a régi, .py fájlokat.

A tömörített fájlok meghívása & a kliens csomagolása

Most nyisd meg a System.py fájlt Notepad++-al és keress rá erre a sorra:

filename = name + '.py'

Cseréld le erre:

filename = name + '.pyc'

Keress rá erre:

newmodule = _process_result(compile(pack_file(filename,'r').re ad(),filename,'exec'),name)   

Cseréld le erre:

newmodule = _process_result(marshal.loads(pack_file(filename,' rb').read()[8:]),name)

Keress rá erre:

RunMainScript("prototype.py")

Cseréld le erre:

RunMainScript("prototype.pyc")

Most mentsd el és nyisd meg a  root_pack.xml majd az összes .py-t írd át .pyc-re, természetesen a System.py-t kivéve, amikor ezzel elkészültél csomagold vissza a root.epk/eix-et és rakd vissza a kliensed pack mappájába felülírva a régieket.


Tesztelés

Ellenőrizd a kliensed főkönyvtárában, hogy van-e Lib nevű mappa és az alábbi fájlokat tartalmazza-e:

- __future__.pyc
- copy_reg.pyc
- linecache.pyc
- ntpath.pyc
- os.pyc
- site.pyc
- socket.pyc
- stat.pyc
- string.pyc
- traceback.pyc
- types.pyc
- urllib.pyc
- UserDict.pyc


Amennyiben a mappát, vagy a benne lévő fájlokat nem találod akkor ide kattintva le tudod tölteni őket.

Ha a mappa és a fájlok is megvannak akkor indítsd el a játékot, amennyiben valamilyen hibaüzenetet kapsz és nem tudod megoldani akkor ide kattintva tudsz segítséget kérni.


Források amelyeket használtam:

- lollo_9_1 hozzászólása
  - Google


Üdvözlettel,
Disco