[Open Source] Patcher

  • Hallo Core'ler,

    ich habe mir die Zeit genommen und einen Patcher geschrieben. Dieser entstand aus langeweile und weil ich den Offi Patcher nicht mag.

    Folgenes ist eingebaut:


    • Arbeitet mit gZip (um die Dateien zu packen/entpacken)
    • Datei-Signatur Check
    • Eigene list.txt (wird vom eigenen PatchListCreator erstellt)
    • Home Button (welche die WebSite öffnet)
    • Log funktion
    • News Page (sieht man überdeutlich)
    • Options Menü
    • Pre-Patch
    • Registry Nutzung für Option Einstellungen
    • Self Update
    • Sprach Einstellung
    • Update, falls verfügbar
    • Verschlüsselte list.txt


    Der Patcher sieht folgendermaßen aus:

    Ich habe den Patcher auf ein Bild draufprogramiert, da ich finde, dass es besser aussieht als eine standart form, die angeboten wird.

    Es ist im Source eine GlobalConfig.vb enthalten, die ihr im grunde bloß verändern braucht:


    Die GlobalConfig.vb ist wie der Name sagt Global und wird direkt für den Patcher & PatchListCreator übernommen.

    So dann kommen wir zum PatchListCreator, welchen Ich nach der vorlage von HDBlacker aufgebaut habe und somit bis auf das Aussehen das selbe ist:

    Für das erstellen der Patch Liste, folgendermaßen:


    1. Pfad angeben
    2. Create List klicken und warten bis die liste im Ordner abgelegt wurde
    3. Compress klicken und warten bis alles fertig ist


    Falls ihr die Liste aktualisieren wollt folgendermaßen:


    1. Pfad angeben
    2. Decompress klicken und warten bis alles fertig ist
    3. Create List klicken und warten bis die liste im Ordner abgelegt wurde
    4. Compress klicken und warten bis alles fertig ist

    _________________________________________


    Im grunde war es das auch bisher, ich werde hier auch Changelogs reinbauen, falls ich Veränderungen durchführe.


    PS: Das ganze ist mit Visual Basic 2010 geschrieben und arbeitet mit .NET Framework 2.0
    PPS: Ich habe im Source soviel wie möglich ist kommentiert, damit ihr wisst was ich da gemacht habe.

    Download v1.8.10: Sedrika Patcher v1.8.10.rar (10,59 MB) - uploaded.to
    Download v1.8.5: Sedrika Patcher v1.8.5.rar (10,51 MB) - uploaded.to
    Download v1.8: Sedrika Patcher v1.8.rar (11,92 MB) - uploaded.to
    Download v1.7: Sedrika Patcher v1.7.rar (13,39 MB) - uploaded.to
    Download v1.6: Sedrika Patcher v1.6.rar (13,97 MB) - uploaded.to
    Download v1.5: Sedrika Patcher v1.5.rar (13,61 MB) - uploaded.to
    Download v1.4: Sedrika Patcher v1.4.rar (13,51 MB) - uploaded.to
    Download v1.3: Sedrika Patcher v1.3.rar (13,50 MB) - uploaded.to
    Download v1.2: Sedrika Patcher v1.2.rar (12,07 MB) - uploaded.to
    Download v1.1: Sedrika Patcher v1.1.rar (11,92 MB) - uploaded.to
    Download v1.0: Sedrika Patcher v1.0.rar (11,79 MB) - uploaded.to
    Die Dummy.txt könnt ihr löschen.

    Change Log:

    Credits:
    - Patcher: Sedrika
    - Design: ZooLag
    - Updater Idee: Tex0

  • Zitat von Crasy;275241

    Wozu ein Open Source Patcher wenn Patcher src Public is? o.O

    Hast du überhaupt die Einleitung gelesen ?

    Zitat

    Hallo M-Core'ler,

    ich habe angefangen einen eigenen Patcher zu coden (aus langeweile)

  • Klar gelesen, aber wie kommt man auf so ein Scheiß aus lw ein Patcher zu machen...

    Beast oder so würd ich ja verstehen aber PATCHER..

  • Zitat von Crasy;275247

    Klar gelesen, aber wie kommt man auf so ein Scheiß aus lw ein Patcher zu machen...

    Beast oder so würd ich ja verstehen aber PATCHER..


    Weil ich den aktuellen auch nicht so dolle finde ?
    Zudem lass mich doch machen was ich will, wenn du einen neuen beast codest sag bescheid ich überweise dir sogar geld wenn es fertig und voll funktionsfähig ist.

  • // Kleines edit ;)
    Eh Jo Updater Sache: (noch ned getestet)
    Patcher.vb :

    Code
    If VER <> scanner.ReadLine() Then ' überprüfen ob die Version stimmt
                    MsgBox("There is a new update", MsgBoxStyle.Information, "Update")
                   Try
                        My.Computer.Network.DownloadFile(PATCH_URL & "NewLaunch.exe", "NewLaunch.exe")
                        TerminateAndStart()
                    Catch ex As Exception
                        MsgBox("Could not download NewLauncher File")
                    End Try
                    Exit Sub
                End If


    Funktionen.vb :

    Code
    Public Sub TerminateAndStart()
            Dim Task As Long
            Task = Shell(My.Application.Info.DirectoryPath & "Update.exe", vbNormalNoFocus)
            MsgBox("A Newer Version of This Patcher has been downloaded !")
            Process.GetCurrentProcess.Kill() ' Kills process
        End Sub

    Neues Projekt: Update
    Modul1.vb :

  • Werd es nacher mal testen, hab grad etwas fixxed, das kommt zuerst.

    Edit: Hab mal Self Updater coded, etwas aus deiner Idee hab ich genommen und verändert, ich arbeite lieber mit Parametern als mit festen werden, so kann der User zB seinen Patcher "ALALALA Patcher.exe" nennen und nach dem Update heisst es immernoch so.

    Edit2:

    v1.3 ist auch da ;)

    Change Log:

    Zitat

    v1.3

    • Options Menü eingebaut
    • list.txt Verschlüsslung eingebaut, dabei wird dann keine PatchLog angelegt
    • Config globalisiert
    • Einige funktionen globalisiert

    v1.2

    • Self Update eingefügt, danke an Tex0 für die Idee der Umsetzung

    v1.1

    • Crash fixx, sollte list.txt nicht auf dem server existieren bzw. kein Internet angeschlossen sein.

    v1.0:

    • Release des Patchers
  • Finde ich ein klasse Projekt und habe beschlossen, dass es einen Sticky bekommt. Weiter so!

    [LEFT][COLOR=#000000][FONT=Tahoma][SIGPIC][/SIGPIC]
    [/FONT][/COLOR][/LEFT]

  • Kleine Idee:
    Die Patchversion kann beim erstellen der Patchlist über die Patchlistcreator.exe eingestellt werden, ansonsten muss man (bei neuer Patchversion) immer zwei Programme builden ;)

  • Naja, hier mal noch eine Idee: Pre Patch!

    Der User kann beim Start des Patchers über ein Kästchen den Pre Patch aktivieren, der wird beim System Start im Hintergrund alles Patchen und somit müsste der User nicht extra warten bis er Spielen kann ( Ja, die Idee is von 4Story ).

  • At Sedrika:
    Langsam nimmt das Projekt professionelle Züge an, ich werde mich jetzt mal dran setzen und schauen, wo man was verbessern kann :)
    Danke !

  • Bei mir kommts ab und zu vor, dass der Patchlist Creator die Res Dateien auf 0 Byte packt und unbrauchbar macht. Wenn ich sie selbst packe, weigert er sich wiederum, diese zu entpacken. Grundsätzlich wird die Neuz nicht gepatcht (Ich habe das Gefühl, dass allgemein nicht geschrieben wird in meinem Client Ordner). Mein Compiler beschwert sich, dass das .Net Framwork 2 angegeben wird, aber Funktionen aus .Net 3.5 verwendet werden.

    Ich würde den Patcher gerne verwenden, kann es aber nicht tun, weil er insgesamt sehr unzuverlässig arbeitet.

  • Zitat von Lucy;276123

    Bei mir kommts ab und zu vor, dass der Patchlist Creator die Res Dateien auf 0 Byte packt und unbrauchbar macht. Wenn ich sie selbst packe, weigert er sich wiederum, diese zu entpacken. Grundsätzlich wird die Neuz nicht gepatcht (Ich habe das Gefühl, dass allgemein nicht geschrieben wird in meinem Client Ordner). Mein Compiler beschwert sich, dass das .Net Framwork 2 angegeben wird, aber Funktionen aus .Net 3.5 verwendet werden.

    Ich würde den Patcher gerne verwenden, kann es aber nicht tun, weil er insgesamt sehr unzuverlässig arbeitet.

    Bisher ist mir so ein fehler nicht unterlaufen bei den hunderten tests, die ich gemacht hab.
    Und die gzip.exe reagiert auf Parameter.

    -f // compress
    -f -d // decompress

  • Falls du es brauchst hab ne kleine andere (meiner Meinung nach schnellere) Download Methode via HttpRequest:

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!