[Tutorial]Eigener SAMP Server Launcher

  • Hallo, ich diesem Tutorial möchte ich euch zeigen, wie Ihr ein eigenen Launcher für den SAMP Server erstellen könnt.
    Wir werden einen Launcher erstellen, der nicht nur dein Spiel Startet sondern auch die NEWS anzeigt sowie Anzahl der Spieler und Admins.
    ____________________________________________________________________________________________________________________________________________
    Was brauchen wir ?
    1: Als erstes brauchen wir das Programm Visual Basic 2010 Express oder Visual Studio Community 2013.
    Empfohlen ist den Visual Basic 2010 Express zu nehmen, wenn man andere Sprachen nicht braucht.
    2: Connector/NET das brauchen wir um Mysql zu bedienen um die Anzahl der Spieler herauszufinden.
    3: Eine Mysql Datenbank
    4: Eine eigene WWW seite
    5: Ein PAWN Script, welcher die Spieler anzahl vom Server ausließt. Beispiel [PAWN] Script - http://pastebin.com/jP8wFXQu
    _____________________________________________________________________________________________________________________________________________
    Der Anfang.

    Wir Öffnen das Programm und starten ein neues Projekt, nun kommt unser Projekt Fenster.
    Wir nutzen das Werkzeug, und fügen unsere Buttons ein.


    • Paar Buttons um das Spiel zu Starten, TS3 Connect, Youtube, etc.
    • PictureBox - dort setzen wir unser Logo vom Server ein.
    • RichTextBox - dort werden die News vom Server angezeigt.
    • 2x Label - dort wir die Spieleranzahl angezeigt und die Version des Launchers.
    • Timer - den nutzen wir für die Aktualisierung der Spieler

    Sobald wir den Timer zugefügt haben klicken wir Ihn nochmal an und ändern rechts unten in der ecke bei den Einstellungen, Enabled in true.
    Den Interval stellen wir die Aktualisierung Zeit ein, 10000(millisekunden) 10000 ms = 10 sek.
    Klicke nun auf ein Leeres Feld, auf der Rechten Seite findest du die Einstellungen,suche den Wert MinimumSitze und MaximumSitze,und änder sie in die größe wie die Aplikation. Findest du in dem gleichen Fenster unter size. Ändere ebenfalls MaximizeBox ins false.
    Nun können wir unsere Elemente anpassen wie wir es möchten :)
    _____________________________________________________________________________________________________________________________________________
    6: Der Code
    Wir klicken Doppelt auf den Button der für die Server Verbindung zuständig ist, dann sollte das erscheinen.

    Code
    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. End Sub

    Dort fügen wir ein

    Code
    1. Process.Start("samp://IP_SERVER")


    Jetzt machen wir das gleiche und klicken auf den TeamspeakButton Doppelt. Und fügen dieses ein.

    Code
    1. Process.Start("ts3server://IP_SERVER")


    Jetzt der Button der zB zu unserer Hompage führen soll.

    Code
    1. Process.Start("http://deine_seite.de/")

    _____________________________________________________________________________________________________________________________________________
    7: Laden der Aktuellen Sachen / News
    Auf unserer WWW Seite erstellen wir eine neue txt Datei Namens neu.txt.
    Jetzt klicken wir Doppelt auf die auf ein Leeres Feld in unserem Launcher
    Im Code erstellt sich Form1_Load, das heißt, was passieren wird wenn die Aplikacjon Startet.
    Ganz oben in diesem Code geben wir folgendes ein.

    Code
    1. Imports System.Net

    Dann im format Form1_Load erstellen wir einen neuen Client und löschen Proxy damit er schneller läuft.

    Code
    1. Dim client As WebClient = New WebClient()
    2. client.Proxy = Nothing

    Zunächst laden wir nun den Inhalt der neu.txt runterins RichTextbox


    Code
    1. Try
    2. RichTextBox1.Text = client.DownloadString("http://deine_seite.de/neu.txt")
    3. Catch ex As Exception
    4. RichTextBox1.Text = vbNewLine & "ERROR."
    5. End Try

    .


    Dank Try "Catch ex as exception" und "End Try" erhalten wir beim Fehler bzw Problem mit Download vom Launcher eine Nachricht das es ein Fehler gibt.
    _____________________________________________________________________________________________________________________________________________
    8:Anzahl der Spieler auslesen.
    Wir installieren den vorher Runtergeladenen Connector/NET.
    Als nächstes Wählen wir im Visual Basic oben Project -> Add Reference -> Browse (links) -> Browse (unten) und wählen MySql.Data.dll. aus.
    Wenn wir es nun ausgewählt haben, heben wir ganz oben im code Folgendes ein.

    Code
    1. Imports MySql.Data.MySqlClient


    und ebenfalls oben unter

    Code
    1. "Public Class Form1

    geben wir ein um mit dem Server zu Connecten.


    Code
    1. Dim SQL_HOST As String = "HOSTNAME"
    2. Dim SQL_USER As String = "NAME"
    3. Dim SQL_PASSWORD As String = "PASSWORT"
    4. Dim SQL_DB As String = "DATENBANK"

    Jetzt Fügen wir eine Funktion über die zeile

    Code
    1. End Class


    Code
    1. Private Sub aktualisiere()
    2. End Sub

    ein und fügen in die Funktion folgendes ein.



    Nun die Anzahl der Administratoren

    ebenfalls müssen wir noch unsere Daten im label speichern.

    Code
    1. Label1.Text = "Spieler online: " & spieler & " (und noch " & admins & " administratoren)"


    Um die Spieler Anzahl bei Start des Launchers zu Aktualisieren fügen wir unten im Form1_Load ein

    Code
    1. aktualisieren()

    Das gleiche machen wir jetzt mit dem Timer den wir vorher eingefügt haben, Doppelklick und fügen das gleiche ein, so sieht es dann aus.

    Code
    1. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    2. aktualisieren()
    3. End Sub

    Nun sind wir Fertig und können unseren Launcher Starten! Nicht vergessen das Script unserem Server einzufügen was wir vorher erstellt hatten.
    _____________________________________________________________________________________________________________________________________________
    9: Fast das Ende Info zur neuer Version vom Launcher.
    Doppelklick auf My Projekt (Rechts) -> Assembly Information -> ändern wie File Version auf namen unsers Launchers.
    Als nächstes erstellen wir auf unserer WWW Seite neue datei namens (version.txt) und schreiben die Version des Launchers rein.
    Im Form1_Load, geben wir folgendes ein.

    Code
    1. Try
    2. Dim version As String = client.DownloadString("http://deine_seite.de/version.txt")
    3. If Not (version = Application.ProductVersion) Then
    4. MessageBox.Show("Es gibt eine neue Launcher Version" & vbNewLine & "Besuche die http://deine_seite.de/ um sie Runterzuladen" & vbNewLine & "Es wird Empfohlen die neue Version zu nutzen.", "Bitte aktualisieren", MessageBoxButtons.OK, MessageBoxIcon.Information)
    5. End If
    6. Catch ex As Exception
    7. MessageBox.Show("Es gab ein Fehler bei dem Download. Melde dich bei einem Administrator", "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
    8. End Try

    Nun wird jedes Mal ein Fenster kommen, sobald eine neue Version vorhanden ist.


    Der ganze Code: http://pastebin.com/Tq1h66yf



    Ich hoffe es könnte euch helfen ;=)


    lg Alex

    j4awcyb.jpg


    2Uz6VJx.png M6QXoKR.png

    2 Mal editiert, zuletzt von Rocky ()

  • Du solltest ggf. noch erwähnen das die MySQL Datenbank Daten (> read only <) sein sollten, da sich sonst jeder die Daten herausziehen kann und Unfug damit betreiben würde (ich würde schnell an buffer overflow + Malware denken (oder halt die ganze Datenbank wenn man es nicht aufteilt).
    Sonst für das was erreicht werden soll solide genug ;)


    /E: Ohh no andere waren schneller ja, PHP ist auch ne gute Idee ;D

  • Ich hätte ein Tipp für dich nutzt doch eine socketverbindung zu dem Server anstelle das mit MySQL zu machen.
    Dann brauchst du noch ein Updatecallback, welches durch einen seperaten Thread aufgerufen wird und deine Formelement ständig aktualisiert.


  • Im Grunde nicht so eine schöne Idee, die Datei immer wieder runter zu laden, wenn man den Launcher startet.


    Wäre besser, die Daten auf dem Webspace zu lassen und sich via HTTP(S) Verbindung die Daten zu laden,
    so könnte man bspw. neugierige Leute aussperren und/oder den Versionscheck direkt über den Useragent laufen lassen.


    Zur Datenbank wurde ja bereits alles gesagt, PHP und Query auch

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Beitrag von DarkEvolution ()

    Dieser Beitrag wurde von shoxinat0r aus folgendem Grund gelöscht: Spam ().