Du kannst entweder deinen Clienten verschlüsseln, oder deinen Patcher so schreiben, dass er kurz bevor er den Clienten startet erst die EIX Dateien lädt, und sobald der Client läuft, die EIX Dateien wieder löscht. Dann kann keiner den Clienten bearbeiten.
Die 2te Möglichkeit hab ich so umgesetzt:
PHP Code:
#Include <File.au3>
#include <Inet.au3>
#NoTrayIcon
Global $url = "http://url.de" ;URL zu dem Server, auf dem die eix.txt liegt
Global $fenstername = "METIN2" ;Fenstername eures Clienten
Global $exe = "metin2.bin" ;Die eigentliche EXE, die den Clienten startet
Global $patcher = "Patcher.exe"
Global $pfad = @ScriptDir
FileInstall("<Pfad zur metin2.bin>/metin2.bin", @TempDir & "\metin2.bin",1)
If FileExists($exe) Then
FileDelete($exe)
EndIf
If ProcessExists("check.dll") Then
DirCreate("pack")
Global $url1[63]
$url1[0] = $url & "/pack/Zone.eix"
$url1[1] = $url & "/pack/BGM.eix"
$url1[2] = $url & "/pack/Effect.eix"
$url1[3] = $url & "/pack/Etc.eix"
$url1[4] = $url & "/pack/guild.eix"
$url1[5] = $url & "/pack/icon.eix"
$url1[6] = $url & "/pack/indoordeviltower1.eix"
$url1[7] = $url & "/pack/indoormonkeydungeon1.eix"
$url1[8] = $url & "/pack/indoormonkeydungeon2.eix"
$url1[9] = $url & "/pack/indoormonkeydungeon3.eix"
$url1[10] = $url & "/pack/indoorspiderdungeon1.eix"
$url1[11] = $url & "/pack/item.eix"
$url1[12] = $url & "/pack/locale_de.eix"
$url1[13] = $url & "/pack/Monster.eix"
$url1[14] = $url & "/pack/monster2.eix"
$url1[15] = $url & "/pack/NPC.eix"
$url1[16] = $url & "/pack/npc2.eix"
$url1[17] = $url & "/pack/Outdoor.eix"
$url1[18] = $url & "/pack/OutdoorA1.eix"
$url1[19] = $url & "/pack/OutdoorA2.eix"
$url1[20] = $url & "/pack/OutdoorA3.eix"
$url1[21] = $url & "/pack/OutdoorB1.eix"
$url1[22] = $url & "/pack/OutdoorB3.eix"
$url1[23] = $url & "/pack/OutdoorC1.eix"
$url1[24] = $url & "/pack/OutdoorC3.eix"
$url1[25] = $url & "/pack/outdoordesert1.eix"
$url1[26] = $url & "/pack/outdoorduel.eix"
$url1[27] = $url & "/pack/outdoorempirebattle1.eix"
$url1[28] = $url & "/pack/outdoorfielddungeon1.eix"
$url1[29] = $url & "/pack/outdoorflame1.eix"
$url1[30] = $url & "/pack/outdoorgmguildbuild.eix"
$url1[31] = $url & "/pack/outdoorguild1.eix"
$url1[32] = $url & "/pack/outdoorguild2.eix"
$url1[33] = $url & "/pack/outdoorguild3.eix"
$url1[34] = $url & "/pack/outdoormilgyo1.eix"
$url1[35] = $url & "/pack/patch1.eix"
$url1[36] = $url & "/pack/OutdoorSnow1.eix"
$url1[37] = $url & "/pack/outdoort1.eix"
$url1[38] = $url & "/pack/outdoort2.eix"
$url1[39] = $url & "/pack/outdoort3.eix"
$url1[40] = $url & "/pack/outdoort4.eix"
$url1[41] = $url & "/pack/outdoortrent.eix"
$url1[42] = $url & "/pack/outdoortrent02.eix"
$url1[43] = $url & "/pack/outdoorwedding.eix"
$url1[44] = $url & "/pack/PC.eix"
$url1[45] = $url & "/pack/pc2.eix"
$url1[46] = $url & "/pack/Property.eix"
$url1[47] = $url & "/pack/Psyco.eix"
$url1[48] = $url & "/pack/root.eix"
$url1[49] = $url & "/pack/season1.eix"
$url1[50] = $url & "/pack/season2.eix"
$url1[51] = $url & "/pack/Sound.eix"
$url1[52] = $url & "/pack/sound2.eix"
$url1[53] = $url & "/pack/Terrain.eix"
$url1[54] = $url & "/pack/textureset.eix"
$url1[55] = $url & "/pack/Tree.eix"
$url1[56] = $url & "/pack/uiloading.eix"
$url1[57] = $url & "/pack/uiscript.eix"
$url1[58] = $url & "/pack/patch2.eix"
$url1[59] = $url & "/pack/season3_eu.eix"
$url1[60] = $url & "/pack/xETC.eix"
$url1[61] = $url & "/pack/xNPC.eix"
$url1[62] = $url & "/pack/xpatch2.eix"
Global $ziel[63]
$ziel[0] = $pfad & "\pack\Zone.eix"
$ziel[1] = $pfad & "\pack\BGM.eix"
$ziel[2] = $pfad & "\pack\Effect.eix"
$ziel[3] = $pfad & "\pack\Etc.eix"
$ziel[4] = $pfad & "\pack\guild.eix"
$ziel[5] = $pfad & "\pack\icon.eix"
$ziel[6] = $pfad & "\pack\indoordeviltower1.eix"
$ziel[7] = $pfad & "\pack\indoormonkeydungeon1.eix"
$ziel[8] = $pfad & "\pack\indoormonkeydungeon2.eix"
$ziel[9] = $pfad & "\pack\indoormonkeydungeon3.eix"
$ziel[10] = $pfad & "\pack\indoorspiderdungeon1.eix"
$ziel[11] = $pfad & "\pack\item.eix"
$ziel[12] = $pfad & "\pack\locale_de.eix"
$ziel[13] = $pfad & "\pack\Monster.eix"
$ziel[14] = $pfad & "\pack\monster2.eix"
$ziel[15] = $pfad & "\pack\NPC.eix"
$ziel[16] = $pfad & "\pack\npc2.eix"
$ziel[17] = $pfad & "\pack\Outdoor.eix"
$ziel[18] = $pfad & "\pack\OutdoorA1.eix"
$ziel[19] = $pfad & "\pack\OutdoorA2.eix"
$ziel[20] = $pfad & "\pack\OutdoorA3.eix"
$ziel[21] = $pfad & "\pack\OutdoorB1.eix"
$ziel[22] = $pfad & "\pack\OutdoorB3.eix"
$ziel[23] = $pfad & "\pack\OutdoorC1.eix"
$ziel[24] = $pfad & "\pack\OutdoorC3.eix"
$ziel[25] = $pfad & "\pack\outdoordesert1.eix"
$ziel[26] = $pfad & "\pack\outdoorduel.eix"
$ziel[27] = $pfad & "\pack\outdoorempirebattle1.eix"
$ziel[28] = $pfad & "\pack\outdoorfielddungeon1.eix"
$ziel[29] = $pfad & "\pack\outdoorflame1.eix"
$ziel[30] = $pfad & "\pack\outdoorgmguildbuild.eix"
$ziel[31] = $pfad & "\pack\outdoorguild1.eix"
$ziel[32] = $pfad & "\pack\outdoorguild2.eix"
$ziel[33] = $pfad & "\pack\outdoorguild3.eix"
$ziel[34] = $pfad & "\pack\outdoormilgyo1.eix"
$ziel[35] = $pfad & "\pack\patch1.eix"
$ziel[36] = $pfad & "\pack\OutdoorSnow1.eix"
$ziel[37] = $pfad & "\pack\outdoort1.eix"
$ziel[38] = $pfad & "\pack\outdoort2.eix"
$ziel[39] = $pfad & "\pack\outdoort3.eix"
$ziel[40] = $pfad & "\pack\outdoort4.eix"
$ziel[41] = $pfad & "\pack\outdoortrent.eix"
$ziel[42] = $pfad & "\pack\outdoortrent02.eix"
$ziel[43] = $pfad & "\pack\outdoorwedding.eix"
$ziel[44] = $pfad & "\pack\PC.eix"
$ziel[45] = $pfad & "\pack\pc2.eix"
$ziel[46] = $pfad & "\pack\Property.eix"
$ziel[47] = $pfad & "\pack\Psyco.eix"
$ziel[48] = $pfad & "\pack\root.eix"
$ziel[49] = $pfad & "\pack\season1.eix"
$ziel[50] = $pfad & "\pack\season2.eix"
$ziel[51] = $pfad & "\pack\Sound.eix"
$ziel[52] = $pfad & "\pack\sound2.eix"
$ziel[53] = $pfad & "\pack\Terrain.eix"
$ziel[54] = $pfad & "\pack\textureset.eix"
$ziel[55] = $pfad & "\pack\Tree.eix"
$ziel[56] = $pfad & "\pack\uiloading.eix"
$ziel[57] = $pfad & "\pack\uiscript.eix"
$ziel[58] = $pfad & "\pack\patch2.eix"
$ziel[59] = $pfad & "\pack\season3_eu.eix"
$ziel[60] = $pfad & "\pack\xETC.eix"
$ziel[61] = $pfad & "\pack\xNPC.eix"
$ziel[62] = $pfad & "\pack\xpatch2.eix"
For $i = 0 To 57 Step 1
_getfile($url1[$i],$ziel[$i])
Next
Run($exe)
Sleep(1000)
ProcessWait($exe)
For $k = 0 To 57 Step 1
FileDelete($ziel[$k])
Next
Exit
Else
MsgBox(0, "Client nicht aktuell", "Bitte patche den Clienten zuerst!")
Exit
EndIf
Func _getfile($quelle,$speichern)
$Daten = _InetGetSource($quelle)
FileWrite($speichern,$Daten)
EndFunc
Die check.dll, die oben vorkommt ist nur von meinem Patcher zum überprüfen, ob auch wirklich die aktuellen Files im pack Ordner liegen. Kannst du einfach rauslöschen.