Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Tut]Autoupdater Do Swojego Klienta Metin2


Mroziak ^^

Rekomendowane odpowiedzi

Opublikowano

Witam, ze względu na to ,że wiele osób chciało by mieć własny autopatcher na swój serwer , a nie wie jak go zrobić , postanowiłem zrobić tutorial.

Na początek pobieramy Visual Basic

Stąd:

http://www.microsoft.com/express/Downloads/

Instalujemy i otwieramy :P

Klikamy File>New Project...

filenj.jpg

Wyskoczy nam nastepujące okienko:

firstdh.jpg

Zaznaczamy "Windows Forms Application" i nazywamy projekt według uznania.

Klikamy "ok".

Otworzył nam się nasz projekt.

Nadamy mu jakiś wygląd graficzny .

Wybieramy w Properties , "BackgroundImage", naciskamy trzy kropeczki obok ^^...

dorobienia.jpg

Wyskoczy nam okienko...

Wciskamy local Resorurces i import.Wyszukujemy folderu z metinem , wchodzimy do folderu patchskins i wybieramy "main".

Rozciągamy naszą formę tak aby pasowało do tła.

Teraz nazwijmy jakoś naszą formę, zaznaczamy ją i w Properties wybieramy "text"

nazwaformy.jpg

Teraz z toolboxa na naszą formę przenosimy :

TextBox,ProgressBar,webbrowser,Timer,oraz trzy buttony :P

Rozmieszczamy je mniej-więcej tak:

wygladzbuttonaminormal.jpg

Oczywiście nazwy z buttonów usuwamy , jak zmienić nazwę już pisałem :P

Teraz trzeba jakoś te buttony zrobić takie jak na PL :D

Button start(ten na samej górze :D

A więc : Properties>BackgroundImage>Local Resource>Import>Katalkog metina>btn_startgame_up.bmp

Z dalszymi zmieniamy tylko przycisk :

Opcje : btn_settings_up.bmp

Wyjdź : btn_quit_up.bmp

 

No ale nasze przyciski mają taką brzydką "otoczkę" wokół siebie prawda?

otoczkabutton.jpg

Da się to zmienić!

Wystarczy nacisnąć przycisk ,któremu chcemy usunąć "otoczkę" i w Properties wybrać FlatStyle i "flat"

flatbutton.jpg

Nasze buttony wyglądają teraz nieźle

Lecz nasza forma nie jest taka jak na PL ^^ Więc:

Naciskamy na formę i w properties szukamy FormBorderStyle i zmieniamy ją na "None"

borderstyle.jpg

Potem StartPosition i zmieniamy na CenterScreen

startposition.jpg

No teraz jest ok :D

Naciskamy WebBrowser i w properties "Url" zmieniamy na link do naszego obrazka-patcha xD

Następnie TextBox...Properties i szukamy ReadOnly , zmieniamy na "true".

readonlytrue.jpg

Więc może przejdziemy do kodu ...

Naciskamy dwukrotnie przycisk startujący grę

I wpisujemy

        Button1.Enabled = False
       TextBox1.Text = "Proszę czekać..."
       TextBox1.Text = "Patchowanie rozpoczyna się...."
       ProgressBar1.Value = "1"
       Timer1.Start()

Potem na przycisk włączający opcję gry i wpisujemy :

Shell("config.exe", AppWinStyle.NormalNoFocus)

Potem na przycisk wychodzący z patchera i wpisujemy :

Close()

Teraz Timer1.Wpisujemy:

    ProgressBar1.Value = "2"
       TextBox1.Text = "Patch.txt Jest Badany"
       If My.Computer.FileSystem.FileExists("patch.txt") Then
           My.Computer.FileSystem.DeleteFile("patch.txt")
           TextBox1.Text = "Patch.txt został usunięty"
       End If
       My.Computer.Network.DownloadFile("http://www.naszastrona.pl/patch/patch.txt", "patch.txt")
       TextBox1.Text = "Zostały pobrane nowe pliki patch.txt"
       ProgressBar1.Value = "3"

       'Locale_pl.eix

       TextBox1.Text = "locale_pl jest badany"
       If My.Computer.FileSystem.FileExists("pack/locale_pl.eix") Then
           My.Computer.FileSystem.DeleteFile("pack/locale_pl.eix")
           TextBox1.Text = "Locale_PL zostało usunięte..."
       End If
       My.Computer.Network.DownloadFile("http://www.naszastrona.pl/patch/locale_pl.eix", "pack/locale_pl.eix")
       TextBox1.Text = "Nowy plik locale_pl został pobrany..."
       ProgressBar1.Value = "4"

       'locale_pl.epk

       TextBox1.Text = "locale_pl.epk jest badany."
       If My.Computer.FileSystem.FileExists("pack/locale_pl.epk") Then
           My.Computer.FileSystem.DeleteFile("pack/locale_pl.epk")
           TextBox1.Text = "Locale_pl zostało usunięte..."
       End If
       ProgressBar1.Value = "5"
       My.Computer.Network.DownloadFile("http://www.naszastrona.pl/patch/locale_pl.epk", "pack/locale_pl.epk")
       TextBox1.Text = "Nowe locale_pl.epk zostało dodane..."

       TextBox1.Text = "Patchowanie skończyło się pomyślnie"
       ProgressBar1.Value = "100"

       If My.Computer.FileSystem.FileExists("start.exe") Then 
           TextBox1.Text = "Włączam metina..."
           Button1.Enabled = True
           If TextBox1.Text = "Włączam metina..." Then
               Shell("start.exe")
               Me.Close()
           End If
       Else
           TextBox1.Text = "Twój klient jest nieodpowiedni to tej gry!"
           TextBox1.Text = "Pobierz odpowiedniego klienta!"
       End If
       Timer1.Stop()

W czym:

start.exe - nasz starter gry,
http://www.naszastrona.pl/patch/locale_pl.epk - link do nowego locale_pl.epk
http://www.naszastrona.pl/patch/locale_pl.eix - link do nowego locale_pl.eix
http://www.naszastrona.pl/patch/patch.txt - link do patch.txt

 

No ok ^^ Zapisujemy savex.jpg i naciskamy zielone play na górze playxd.jpg :P

Wyłączamy patcher wchodzimy do katalogu gdzie zapisaliśmy patchera wybieramy nasz patcher w *.exe kopiujemy ,wklejamy do metina i gitara xD

 

U mnie patcher wygląda tak:

gotowypatcher.jpg

 

^^

Ale się napisałem xDD

 

Pomysł oraz troszkę kodu (^^) z e*pvp.

 

Dla leniwych,gotowy kod :D

 

Public Class Form1

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

   End Sub

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Button1.Enabled = False
       TextBox1.Text = "Proszę czekać..."
       TextBox1.Text = "Patchowanie rozpoczyna się...."
       ProgressBar1.Value = "1"
       Timer1.Start()
   End Sub

   Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
       Close()
   End Sub

   Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
       Shell("config.exe", AppWinStyle.NormalNoFocus)
   End Sub

   Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
       ProgressBar1.Value = "2"
       TextBox1.Text = "Patch.txt Jest Badany"
       If My.Computer.FileSystem.FileExists("patch.txt") Then
           My.Computer.FileSystem.DeleteFile("patch.txt")
           TextBox1.Text = "Patch.txt został usunięty"
       End If
       My.Computer.Network.DownloadFile("http://www.naszastrona.pl/patch/patch.txt", "patch.txt")
       TextBox1.Text = "Zostały pobrane nowe pliki patch.txt"
       ProgressBar1.Value = "3"

       'Locale_pl.eix

       TextBox1.Text = "locale_pl jest badany"
       If My.Computer.FileSystem.FileExists("pack/locale_pl.eix") Then
           My.Computer.FileSystem.DeleteFile("pack/locale_pl.eix")
           TextBox1.Text = "Locale_PL zostało usunięte..."
       End If
       My.Computer.Network.DownloadFile("http://www.naszastrona.pl/patch/locale_pl.eix", "pack/locale_pl.eix")
       TextBox1.Text = "Nowy plik locale_pl został pobrany..."
       ProgressBar1.Value = "4"

       'locale_pl.epk

       TextBox1.Text = "locale_pl.epk jest badany."
       If My.Computer.FileSystem.FileExists("pack/locale_pl.epk") Then
           My.Computer.FileSystem.DeleteFile("pack/locale_pl.epk")
           TextBox1.Text = "Locale_pl zostało usunięte..."
       End If
       ProgressBar1.Value = "5"
       My.Computer.Network.DownloadFile("http://www.naszastrona.pl/patch/locale_pl.epk", "pack/locale_pl.epk")
       TextBox1.Text = "Nowe locale_pl.epk zostało dodane..."

       TextBox1.Text = "Patchowanie skończyło się pomyślnie"
       ProgressBar1.Value = "100"

       If My.Computer.FileSystem.FileExists("start.exe") Then
           TextBox1.Text = "Włączam metina..."
           Button1.Enabled = True
           If TextBox1.Text = "Włączam metina..." Then
               Shell("start.exe")
               Me.Close()
           End If
       Else
           TextBox1.Text = "Twój klient jest nieodpowiedni to tej gry!"
           TextBox1.Text = "Pobierz odpowiedniego klienta!"
       End If
       Timer1.Stop()
   End Sub
End Class

 

 

Pozdrawiam , Mroziak.

Proszę pisać czy działa! :D

 

PS.Nie ukrywam ,że liczę na wbicie na profil i + :D

Powinniście dać + i wbić na profil przynajmniej za chęci xD

Za wysoka.

Opublikowano

Szczerze, podziwiam, ze chcialo Ci sie pisac tutka, ale w kodzie nagmatwales, nie bedzie wydajny :> + przy kazdym wlaczaniu bedzie pobierac pliki co jest to czego my chcemy :)

9.png

userbarwb.png
Zawsze promocje na sygnatury ^^

Opublikowano

@Spopi:

gotowypatcher.jpg

Zaznaczyłem na SS ^^

 

@Sui:

Heh , masz rację -.- Mogłem o tym pomyśleć wcześniej i dać button patchujący i button wyłącznie odpalający grę ^^

Za wysoka.

Opublikowano

sui ale mi chodzi nie edytowane patchera tylko zeby on odrazu sciagal z serwera nie wiem wklejac nazwy plikow do patch.txt?

85717998364074106058.png
Opublikowano

A co jak tylko serverinfo? Np. jak znajduje się w katalogu głównym metin2 (tam gdzie się włącza)

Dumny członek MPCforum od 09 czerwca 2009 ;)

Opublikowano

A co jak tylko serverinfo? Np. jak znajduje się w katalogu głównym metin2 (tam gdzie się włącza)

 

 

ciezko pomyslec i zamiast "pack\locale_pl.*" zmienic na "serverinfo.py" ?

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...