Quote:
Originally Posted by xCPx
Kommt immer drauf an, wenn man beispielsweiße iwo md5 nutzt, so wird das in python22 über das module md5 gemacht während es ab python25 über hashlib geregelt wird.
|
Metin2 benutzt allerdings kein MD5 in Python (meines Wissens nach).
Ich spreche hier davon ein Upgrade von Python 2.2 auf 2.7 vorzunehmen ... bei einem völlig unveränderten Client.
Das einzige Problem sind die Hex Literals (falls Metin2 nicht startet mit eurer Python2.7 DLL kompiliert sie ohne das site module neu ...) welche einfach durch grp.generatecolor ersetzt werden können.
Um dies ein wenig zu vereinfachen könnt ihr z.B auch
Code:
def StringColorToInt(colorstring):
import grp
colorstring = colorstring.strip()
if len(colorstring) != 8:
raise ValueError, "input #%s is not in #AARRGGBB format" % colorstring
a, r, g, b = colorstring[:2], colorstring[2:4], colorstring[4:6],colorstring[6:8]
a, r, g, b = [int(n, 16) for n in (a, r, g, b)]
return grp.GenerateColor(float(r) / 255.0, float(g) / 255.0, float(b) / 255.0, float(a) / 255.0)
__builtin__.CTOA = StringColorToInt
in eure system.py einfügen.
dann einfach bei allen hex literals aus 0x12345678 CTOA("12345678")
Wenn ihr alle Hex Literals ersetzt habt sollte der Client mit der neuen DLL starten.
Das ist eine Methode ihr könnt es auch direkt in der DLL Fixxen.
Außer der Site Module Sache und der Hex Literal Sache müsst ihr nichts beachten. (ihr solltet natürlich den Python 2.7 Lib Ordner in den Lib ordner im Metin2 Hauptverzeichnis packen)