Hi Com,
wie der Titel schon sagt ermögliche ich euch mit meinem neuen bescheidenen Programm was sich
viele von euch schon lang ersehnen: Den Patch des Metin2-Clienten ihrer Spieler.
Kurze Einleitung:
Der Patch ist in AutoIt geschrieben. Er ist nicht für China-Clienten geeignet sondern nur für Deutsche (locale/de).
Ist der Client nicht aktuell, so wird er gepatcht. Ohne das der Patch durchgeführt wurde
kann der Spieler das Spiel nicht starten. (Jaa ich weis mit Bypass geht alles :D)
Vorraussetzungen:
- Eingerichtetes XAMPP
- Deutscher Metin2 Client
- Dieses TuT
- Meinen Patcher
- Brain.exe
Es geht los:
§1.1: Entpacken von root und locale_de
Das wichtigste, damit der Patcher funktioniert, ist das die root.eix,root.epk,locale_de.eix und locale_de.epk
davor entpackt wurden. Wenn das noch nicht der Fall war, so entpackt diese mit dem FileExtractor! Was dabei entstehen sollte sind
ein Haufen Daten im Clientordner und ein Ordner "locale", in dem ein Ordner namens "de" ist. In ihm sind auch einige Daten und Ordner...
§1.2: Funktioniert euer Client ohne mc.exe? (Surakopf)
Wenn euer Client bereits ohne mc.exe funktioniert (also allein durch das ausführen der metin2.bin), dann überspringt diesen Punkt.
Wenn ihr die mc.exe verwendet, dann werdet ihr sie los indem ihr die serverinfo.py entsprechend bearbeitet.
Wie das geht, findet ihr hier:
[Only registered and activated users can see links. Click Here To Register...]
Ihr MÜSST das machen, da der Client sonst nicht zum Server verbinden wird!
Der Patcher führt nur die metin2.bin aus!
§1.3: Einrichten der Versionsdatei
Damit der Patcher weis, welche Version denn der Client hat, erstellt ihr eine Textdatei namens "Version.txt" in die ihr
erstmal z.B: "0.0.0.1" (ohne die "") eingebt. Wichtig ist das dort nichts anderes stehen darf. Ein Leerzeichen oder Zeilenbruch
sorgt bereits dafür das der Patcher nicht funktioniert... Wenn ihr das gemacht habt, entfernt die Endung .txt damit die
Datei keine Endung hat also nur "Version" heist!
Lasst ihr die Endung dran, so wird der Patcher nicht funktionieren!
§2.1: Einrichten des Patchordners
Erstellt in XAMPP einen ordner Namens patch (in htdocs natürlich) und kopiert in ihn sämtlichen Inhalt des Clientordners,
den du gerade eingerichtet hast. Öffne hier die Datei "Version" mit einem Texteditor und mach "0.0.0.1" zu "0.0.0.2". Wir
wollen ja nicht das der Client nach dem Patchen immernoch die gleiche Versionsnummer hat ;)
§2.2: Einrichten der Serverseitigen Versionsnummer
Erstellt neben dem Ordner "patch" einen zweiten Ordner namens "patchversion". Erstellt in ihm eine Textdatei Namens "Version.txt"
in die ihr folgenden Inhalt schreibt: "<body>0.0.0.2</body>" (ohne die ""). Auch hier gilt: Keine leerzeichen oder Zeilenbrüche,
da der Patcher sonst nicht funktioniert! Auch hier ändern wir die Endung ab. Diesmal machen wir sie nicht weg sondern ändern sie in ".htm".
§3.1: Einrichten der Patch.ini
Schiebt den Patcher und die Datei patch.ini (im Anhang runterzuladen) in den Clientordner. Öffnet die Patch.ini und schreibt dort eure Hamachi IP bzw.
eure DNS-Adresse ein. (Jenachdem was ihr benutzt) Wichtig ist nur, das sie auf euren localhost umleitet.
Der Inhalt der Patch.ini kann dann entweder so: "5.55.555.55" aussehen oder so: "euerserver.no-ip.biz". Und ein letztes Mal gebe ich euch den Hinweis:
Auch hier dürfen keine weiteren Leerzeichen oder Zeilenbrüche kommen da der Patcher sonst nicht funktioniert!
§3.2: Patchen!
Wenn alles eingerichtet ist so wie es oben beschrieben ist, dann startet den Patcher. (Ihr könnt ihn gerne nach eurem Servernamen umbenennen,
jedoch ist wichtig das ihr ihn nicht "Metin2.exe" nennt, da der Patcher diese Datei am ende des Patchvorgangs löscht wenn sie vorhanden ist.
Achtet darum auch darauf, das ihr eine Metin2.bin habt und sie nicht in Metin2.exe umbenannt wurde.
Wenn der Patcher gestartet wurde, überprüft er ob die Versionsnummer des Clienten (die in der Datei "Version" steht) mit der aktuellsten
Versionsnummer (die in der Datei "Version.htm" steht) übereinstimmt. Ist dies der Fall, so wird euch angezeigt, das der Client aktuell ist.
Mit einem Druck auf "Starten" Startet der Client.
Wenn die Versionsnummern sich unterscheiden (so wie in unserem Fall jetzt) wird euch angezeigt, das der Client nicht aktuell sei, und ein
Update benötigt wird.
In diesem Fall startet beim Drücken auf "Start" der Patchvorgang. Er dauert nur wenige Sekunden.
Wärend des Patchvorgangs ersetzt der Patcher die Daten des Clients aus dem Updateordner durch die des alten Clienten.
Welche Daten dabei genau ausgetauscht werden habe ich in einer Liste am Ende des Posts zusammengefügt. Wenn ihr noch weitere ersetzt haben wollt,
so schreibt es in den Post und ich editiere sie rein.
§3.3: Nach dem Patch
Wenn gepatcht wurde, ist der Client auf dem aktuellsten Stand und die Versionsnummer in der Datei "Version" ist logischerweise "0.0.0.2".
Jedes mal, wenn ihr etwas am Clienten verändert müsst ihr somit die Versionsnummer in der "Version" aus dem patchordner und die in der "Version.htm"
verändern. z.B: "0.0.0.3". Will ein Spieler das Spiel starten merkt der Patcher nun das ein Update notwendig ist und patcht die Dateien wieder ;)
Tip:
Ihr könnt in die Versionsdateien natürlich auch etwas anderes reinschreiben. Wenn ihr z.B. angst habt, das die Spieler die Nummer in der Versionsdatei
einfach eine Zahl höher machen um das Update zu umgehen, könnt ihr jedesmal irgendein Wort reinschreiben. Der Spieler weis nie welches als nächstes kommt ;D
ACHTUNG: Der Patch funktioniert nur wenn er sich im Metin Ordner befindet, die patch.ini da ist und die oben genannten Punkte genau befolgt wurden!
Die kleinste Abweichung kann zu Fehlern führen!
Hier die Liste der Dateien die der Patcher bis jetzt ersetzt:
"http://" & $Ip & "/patch/locale/de/item_proto"
"http://" & $Ip & "/patch/locale/de/mob_proto"
"http://" & $Ip & "/patch/locale/de/insult.txt"
"http://" & $Ip & "/patch/locale/de/item_list.txt"
"http://" & $Ip & "/patch/locale/de/itemdesk.txt"
"http://" & $Ip & "/patch/locale/de/locale_game.txt"
"http://" & $Ip & "/patch/locale/de/locale_interface.txt"
"http://" & $Ip & "/patch/locale/de/skilldesc.txt"
"http://" & $Ip & "/patch/locale/de/skilltable.txt"
"http://" & $Ip & "/patch/locale/de/empiredesc_a.txt"
"http://" & $Ip & "/patch/locale/de/empiredesc_b.txt"
"http://" & $Ip & "/patch/locale/de/empiredesc_c.txt"
"http://" & $Ip & "/patch/locale/de/jobdesc_assassin.txt"
"http://" & $Ip & "/patch/locale/de/jobdesc_shaman.txt"
"http://" & $Ip & "/patch/locale/de/jobdesc_sura.txt"
"http://" & $Ip & "/patch/locale/de/jobdesc_warrior.txt"
"http://" & $Ip & "/patch/locale/de/ui/createcharacterwindow.py"
"http://" & $Ip & "/patch/locale/de/ui/login.jpg"
"http://" & $Ip & "/patch/locale/de/ui/loginwindow.py"
"http://" & $Ip & "/patch/locale/de/ui/login.sub"
"http://" & $Ip & "/patch/locale/de/ui/select.jpg"
"http://" & $Ip & "/patch/locale/de/ui/select.sub"
"http://" & $Ip & "/patch/locale/de/ui/selectcharacterwindow.py"
"http://" & $Ip & "/patch/locale/de/ui/selectempirewindow.py"
"http://" & $Ip & "/patch/locale/de/ui/serverlist.jpg"
"http://" & $Ip & "/patch/locale/de/ui/serverlist.sub"
"http://" & $Ip & "/patch/locale/de/effect/gm.mse"
"http://" & $Ip & "/patch/locale/de/effect/ymirred.tga"
"http://" & $Ip & "/patch/assassin_m.msm"
"http://" & $Ip & "/patch/assassin_w.msm"
"http://" & $Ip & "/patch/colorinfo.py"
"http://" & $Ip & "/patch/config.exe"
"http://" & $Ip & "/patch/consolemodule.py"
"http://" & $Ip & "/patch/constinfo.py"
"http://" & $Ip & "/patch/serverinfo.py"
"http://" & $Ip & "/patch/emotion.py"
"http://" & $Ip & "/patch/game.py"
"http://" & $Ip & "/patch/interfacemodule.py"
"http://" & $Ip & "/patch/introcreate.py"
"http://" & $Ip & "/patch/introempire.py"
"http://" & $Ip & "/patch/introloading.py"
"http://" & $Ip & "/patch/intrologin.py"
"http://" & $Ip & "/patch/introselect.py"
"http://" & $Ip & "/patch/locale.cfg"
"http://" & $Ip & "/patch/locale.py"
"http://" & $Ip & "/patch/npclist.txt"
"http://" & $Ip & "/patch/playersettingsmodule.py"
"http://" & $Ip & "/patch/metin2.bin"
Lasst euch von dem "& $Ip &" nicht verwirren denkt euch da eure IP hin ;)
Zum Schluss noch ein paar Bilder:
[Only registered and activated users can see links. Click Here To Register...]
Das war n ganzes Stück Arbeit ;) hab euch lieb^^