elitepvpers

elitepvpers (https://www.elitepvpers.com/forum/)
-   Metin2 PServer Guides & Strategies (https://www.elitepvpers.com/forum/metin2-pserver-guides-strategies/)
-   -   [How to]Script your own Patcher (https://www.elitepvpers.com/forum/metin2-pserver-guides-strategies/583452-how-script-your-own-patcher.html)

'Haseo 05/26/2010 17:31

[How to]Script your own Patcher
 
Hi,,
ich zeig euch heute wie ihr euren eigenen Patcher schreibt!
Benötigt:
[Only registered and activated users can see links. Click Here To Register...]
Brain.exe(Wird dringend beötigt!!)
Brain.dll(Wird auch dringend beötigt!!)
Ihr bekommt den Download der Brain.exe und Brain.dll per PN!
Ok fangen wir an!
Quote:

Originally Posted by Form anfertigen
1.Ihr legt ein neues Projekt an, indem ihr Visual Basic 2008 startet und oben links auf Datei -> Neues Projekt klickt!
2.Gebt nun den Name des Projektes ein(Bei mir PerfectWorldMT2 Patcher)
3.Er lädt kurz und dann seht ihr eine vorgefertigte Form!
4.Klickt diese nun an dann seht ihr unten rechts ein Fenster Eigenschaften!
5.Scrollt nach unten und bei Text Schreibt ihr dann wieder den Namen hin!
6.Nun zieht ihr aus der Toolbox ein Button auf die Form! Den nennt ihr nun Starten!

Quote:

Originally Posted by Code
1.Doppelklick auf das vorgefertigete Fenster
2.Nun gebt ihr folgenden Code ein:
Code:

[COLOR="Navy"]1: my.computer.network.downloadfile("http://" & link & "/patchconfig.cfg", my.computer.filesystem.currentdirectory & "\patchconfig.cfg","","",false,200000,true)[/COLOR]
[COLOR="Orange"]for each line in system.io.file.readalllines(my.computer.filesystem.currentdirectory & "\patchconfig.cfg")[/COLOR]
[COLOR="DeepSkyBlue"]my.computer.network.downloadfile("http://" & link  & "/" & line, my.computer.filesystem.currentdirectory & "\" & line,"","",false,200000,true)[/COLOR]
[COLOR="Orange"]next[/COLOR]


Erklärung:
[]:Das Programm hat jetzt den String "link" als "Eure Server IP" festgelegt! Ihr braucht nun nur noch link anstatt eurer IP einzugeben!
[]:Er lädt die Datei "patchconfig.cfg" von dem URL "Http:// LINK /patchconfig.cfg" und speichert sie im aktuellen Verzeichnis!
[]:Er liest die erste linie in der Patchconfig! Dann fürht er den drunter stehenden Code aus und liest dann die nächste Zeile aus!
Nachdem er alle Zeilen ausgelesen hat gehts mit dem Code weiter!
[]:Er lädt die im URL "http:// LINK / eingelesene Zeile" runter und speichert sie im aktuellen verzeichnis mit dem namen der eingelesenen Zeile!¹

Quote:

Originally Posted by Code²
1.Ihr macht jetzt wieder im vorgefertigten Fenster ein doppelklick auf den Button!
2. Ihr fügt den folgenden Code ein :
Code:

[COLOR="PaleGreen"]shell(my.computer.filesystem.currentdirectory & "METIN2 EXE.exe",AppWinStyle.NormalFocus, True)[/COLOR]
[COLOR="Plum"]me.close()[/COLOR]


[]: Er führt automatisch die sich im gleichen Ordner befindende Metin2 exe.exe, welche ihr durch den Namen eurer Exe ersetzt aus!
[]: Jetzt schliesst sich das Programm automatisch!


€ : Auf Wunsch von xXxXMichiXxXx eingefügt:
Webbrowser einbinden:
Quote:

1. Ihr fügt ein Webbrowser Panel zu eurer Form hinzu!
2. Ihr fügt eine Textbox und ein Button hinzu!
3. Doppelklick auf den Button
4a. Gebt ein :
Code:

[COLOR="AQUA"]webbrowser1.navigate(textbox1.text)[/COLOR]
[]: Wenn man den Button drückt, navigiert er den Webbrowser zu dem URL , der in der Textbox steht!
4b. Ihr geht wieder auf Eigenschaften und dann scrollt ihr zu URL runter!
5. Ihr gebt euren URL ein und macht mit 4a weiter!
Quote:

Hi,
ich zeige euch jetzt wie ihr eurer Icon selber einbaut ;)
1. Klickt auf die vorgefertigte Form in VB08!
2. Bei den Eigenschaften scrollt ihr zum Punkt Icon
3. Ihr klickt auf den button ... und dann importiert ihr eurer Icon
4. Falls eurer Icon jetzt rechts erscheint habt, dann ist es fertig!
5. Falls nicht dann scrollt nach unten und sucht nach ShowIcon
6. Stellt den Wert auf True
Update :
1. du fügst über dem code
Code:

for each line in system.io.file.readalllines(my.computer.filesystem.currentdirectory & "\patchconfig.cfg")
my.computer.network.downloadfile("http://" & link  & "/" & line, my.computer.filesystem.currentdirectory & "\" & line)
next

diesen Code ein
Code:

for each line in system.io.file.readalllines(my.computer.filesystem.currentdirectory & "\patchconfig.cfg")
progressbar1.maximum = progressbar1.maximum + 1
next

und dann noch bei dem code
Code:

for each line in system.io.file.readalllines(my.computer.filesystem.currentdirectory & "\patchconfig.cfg")
my.computer.network.downloadfile("http://" & link  & "/" & line, my.computer.filesystem.currentdirectory & "\" & line)
next

fügst du über next die Zeile
Code:

progressbar1.value = progressbar1.value +1
hinzu das sieht dann so aus :
Code:

dim link as string = "Eure Patch link!"
my.computer.network.downloadfile("http://" & link & "/patchconfig.cfg", my.computer.filesystem.currentdirectory & "\patchconfig.cfg")
for each line in system.io.file.readalllines(my.computer.filesystem.currentdirectory & "\patchconfig.cfg")
progressbar1.maximum = progressbar1.maximum + 1
next
for each line in system.io.file.readalllines(my.computer.filesystem.currentdirectory & "\patchconfig.cfg")
my.computer.network.downloadfile("http://" & link  & "/" & line, my.computer.filesystem.currentdirectory & "\" & line)
progressbar1.value = progressbar1.value +1
next

Für den Startbutton säh der Code so aus :
Code:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      2: Shell(My.Computer.FileSystem.CurrentDirectory & "Euere EXE", AppWinStyle.NormalFocus, True)
    End Sub

^das zeig einem wie man eine Progressbar einbaut!


Jetzt zur Version.txt
Quote:

Originally Posted by Version.txt
1. Ihr erstellt eine Version.txt
2. Ihr packt die Version.txt auf euren Webspace
3. Ihr macht doppelklick auf eure Form
4. Ihr gebt folgenden Code ein :
Code:

        Dim link As String = "Eure Patch link!"
        If My.Computer.FileSystem.FileExists(My.Computer.FileSystem.CurrentDirectory & "\version.txt") Then
            Dim alt As Integer = Val(System.IO.File.ReadAllText(My.Computer.FileSystem.CurrentDirectory & "\version.txt"))
            My.Computer.FileSystem.DeleteFile(My.Computer.FileSystem.CurrentDirectory & "\version.txt")
            My.Computer.Network.DownloadFile(link & "\version.txt", My.Computer.FileSystem.CurrentDirectory & "\version.txt")
            Dim neu As Integer = Val(System.IO.File.ReadAllText(My.Computer.FileSystem.CurrentDirectory & "\version.txt"))
            If alt >= neu Then
                GoTo 1
            Else
                goto 2
            End If

        Else
            my.computer.network.downloadfile(link & "\version.txt,my.computer.filesystem.currentdirect ory & "\version.txt")
            GoTo 1
        End If

5. Erklärung: ich mach dir erklärung mal ein bissl kürzer : Falls eien verion.txt schon vorhanden ist, liest er ihren wert aus löscht sie und lädt sie neu runter. Von der neu gedownloadeten Datei nimmt er nun auch den Wert und vergleicht sie. Falls der erste ausgelesene Wert kleiner ist als der zweite ausgelesene Wert, geht er zum Punkt 1. Falls nicht dann kann man gleich starten! Falss die Datei nicht vorhanden ist, lädt er sie runter und geht zum Punkt 1.
6. VORSICHT! Ich habe im oberseten Code etwas geändert! Diese Änderung auf jeden Fall beachten!
7. Den Code fügt ihr ganz oben unter
Code:

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ein.

Jetzt wisst ihr wie man sich sein eigenen Patcher erstellt!
Ich hoffe sehr das er euch weiterhilft und falls ihr fragen habt pn´t mich oder postet sie hier!
Ich bitte euch nicht immer wieder für eure Patcher ine extra Thread aufzumachen sondern sie hier zu posten!
PS: Euer fertige Code sollte dann so aussehen :
Spoiler:
Code:

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim link As String = "Eure Patch link!"
        If My.Computer.FileSystem.FileExists(My.Computer.FileSystem.CurrentDirectory & "\version.txt") Then
            Dim alt As Integer = Val(System.IO.File.ReadAllText(My.Computer.FileSystem.CurrentDirectory & "\version.txt"))
            My.Computer.FileSystem.DeleteFile(My.Computer.FileSystem.CurrentDirectory & "\version.txt")
            My.Computer.Network.DownloadFile(link & "\version.txt", My.Computer.FileSystem.CurrentDirectory & "\version.txt")
            Dim neu As Integer = Val(System.IO.File.ReadAllText(My.Computer.FileSystem.CurrentDirectory & "\version.txt"))
            If alt >= neu Then
                GoTo 1
            Else
                goto 2
            End If

        Else
            My.Computer.Network.DownloadFile(link & "\version.txt", My.Computer.FileSystem.CurrentDirectory & "\version.txt")
            GoTo 1
        End If
1:      My.Computer.Network.DownloadFile("http://" & link & "metin2/patchconfig.cfg", My.Computer.FileSystem.CurrentDirectory & "\patchconfig.cfg", "", "", False, 2000000, True)
        ProgressBar1.Maximum = 0
        For Each line In System.IO.File.ReadAllLines(My.Computer.FileSystem.CurrentDirectory & "\patchconfig.cfg")
            ProgressBar1.Maximum = ProgressBar1.Maximum + 1
        Next
        For Each line In System.IO.File.ReadAllLines(My.Computer.FileSystem.CurrentDirectory & "\patchconfig.cfg")
            My.Computer.Network.DownloadFile("http://" & link & line, My.Computer.FileSystem.CurrentDirectory & "\" & line, "", "", False, 2000000, True)
            ProgressBar1.Value = ProgressBar1.Value + 1
        Next
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      2: Shell(My.Computer.FileSystem.CurrentDirectory & "Euere EXE", AppWinStyle.NormalFocus, True)
    End Sub


MfG
Bestshocker

Der link wo einem die Brain.exe erklärt wird : [Only registered and activated users can see links. Click Here To Register...]

amphetaminecoffee 05/26/2010 17:36

Sieht ganz gut aus.

xXxXMichiXxXx 05/26/2010 17:50

nice aber eine frage man braucht ja einen button (ist ja oben beschreiben wie man in einfügt auf die form) aber es ist nicht beschreiben wie man ihn einbindet usw. irgendwie hab ich das gefühl das es so nicht klappen kann. Sry aber schaus dir nochmal an

'Haseo 05/26/2010 17:54

Ne das soll ja nur der startbutton und der wird im zweiten code eingebaut ;)
Quote:

1.Ihr macht jetzt wieder im vorgefertigten Fenster ein doppelklick auf den Button!
Man kann es ja mal übersehen ;)

xXxXMichiXxXx 05/26/2010 17:58

ahh ja sry nehms zurück ^^

'Haseo 05/26/2010 18:02

kannst auch gerne verbesserungsvorschläge posten ;)
PS: Schon 4 PN´s Namen verrat ich aber nicht :P

musicinstructor 05/26/2010 18:24

dann downloadet er ja immer, egal ob aktuell oder nicht.
achja verschicke serials für brain.exe^^

'Haseo 05/26/2010 18:45

Ne er patcht nicht wenn die Datei leer ist :D

Demon-777 05/26/2010 19:13

omg nice one lol hab sowas schon ewig gesucht !

'Haseo 05/26/2010 19:18

Jo,
dafür gibt es auch ein thx button aber ich finds gut das es euch gefällt!
PS: Da mein Postfach schon fast voll ist und das auch so weitergehen wird werd ich mal die Seite veröffentlichen wo ihr die brain.exe erklärt bekommt!

<Custom> 05/26/2010 20:03

[Only registered and activated users can see links. Click Here To Register...]

Bitte sehr.

Nice TuT, werde es ausprobieren soweit ich zeit habe.

'Haseo 05/26/2010 20:09

*happy*
Mein TuT hat von TheKurdBoy ein Lob bekommen Oo

PS: Hab schon nen Link von Stupeida an mein TuT angefügt ;)

αddι 05/26/2010 20:18

Übersichtliches TuT, werde es später mal versuchen.

Priince_D 05/26/2010 20:24

Sicher, dass er nicht immer Patcht?..

'Haseo 05/26/2010 20:41

Jo,
werd auch noch eine Version Funktion einfügen ;)


All times are GMT +2. The time now is 23:51.

Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.