Hilfe bei Launcher/Updater Verfeinerung?

  • VB.NET

Es gibt 63 Antworten in diesem Thema. Der letzte Beitrag () ist von asusdk.

    So ich hab es mal für euch überarbeitet und ihr findet es im Anhang
    Aber ey Jungs ein bisschen denken beim Programmieren, damit nicht sowas entsteht :D

    Was hab ich geändert:
    - Neue Klasse "Keys" und hab dort alle Statischen Strings, Urls, schlüssel gespeichert, weil wieso einen String 8x schrieben und dabei der gefahr laufen das man sich verschreibt.
    Tipp:
    Versucht nicht immer wieder irgendwelche datein nach einem Status zu fragen sondern speichert es im Code mit einer Variable wie das mir der Version ...


    Spoiler anzeigen

    Visual Basic-Quellcode

    1. Return GradientYoN = 170 ' Ich glaub das macht es auch :D
    2. 'If GradientYoN = 170 Then <<= WTF
    3. ' Return True
    4. 'Else
    5. ' Return False
    6. 'End If
    7. '-----------------------
    8. Return FontOrNot = True
    9. '-- WTF --'
    10. 'If FontOrNot = True Then
    11. ' Return True 'wenn du return machts, ist die methode zu ende
    12. ' 'Me.Invalidate()
    13. 'Else
    14. ' Return False 'wenn du return machts, ist die methode zu ende
    15. ' 'Me.Invalidate()
    16. 'End If

    Dateien
    Hey, danke schau ich mir gleich mal an

    die oben angezeigten Zeilen sind noch von der ursprünglichen Pbar übrig, die hab ich mal über ein youtube tutorial gefunden,
    diese teile werden aktuell gar nicht mehr benötigt, diese hätte ich wohl entfernen können und sollen ^^
    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If
    Manchmal macht es auch ein Buch, weil bei YouTube sind viele Leute die Ahnung haben auch genau so viele die keine Ahnung haben, weil keine Prüft was die sagen und was nicht :D
    Was bei Büchern schon etwas anders aussieht

    Würde mich um Hilfreich freuen :P
    Hey hab dir dein hilfreich gegeben für die Mühe,

    finde aber leider meine alte Version deutlich besser, denn so hab ich nur noch ne weitere Unterdatei, und muss ständig den Tab wechseln um zu sehen was da nun angezeigt oder gemacht wird,
    dennoch danke für die Mühe
    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If
    Damit kannst du Variablen direkt im String aufrufen

    Beispiel

    VB.NET-Quellcode

    1. Dim zeichen as char = "a"c
    2. Dim Alter as Integer = 19
    3. Dim Zeichenkettte as String = $"F{zeichen}cebamm"
    4. Dim Satz as String = $"Ich bin {Zeichenkette} und bin {Alter} Jahre Alt" 'Ich bin Facebamm und bin 19 Jahre alt
    hm ok, naja denke das mit den keys ist praktisch wenn man ein Programm mehrsprachig verwenden will ^^

    aber das mit variablen im string aufrufen, machts nur unnötig komplizierter, und btw es sieht kacke aus :)
    naja, wie gesagt danke auf jeden Fall für die Mühe ^^
    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If
    Ja an sich ist das super, ganz ernsthaft, und ich werde es in naher Zukunft selbst ausgiebig testen, meine (zugegeben Kurzschluss)reaktion ist halt eher
    das ich generell Probleme habe mich im Code zurechtzufinden, und wenn dann alles untereinander immer weiter verschachtelt wird, verliere ich den Überblick nur noch mehr.

    Zu meiner Verteidigung kann ich nur sagen das ich meine ersten Programmierschrittchen in "AutoIT" gemacht habe, da ist der gesammte Programmcode (incl. GUI-Code) in einer laaangen einzeldatei,
    ich weiss das mir da viele (wenn nicht gar die meisten) wiedersprechen, aber das war für mich jedenfalls deutlich übersichtlicher ^^

    Bei der hiesigen IDE nervt vor allem das es kein gescheites Tabsystem gibt(wenn schon einzelne Dateien genutzt werden). Hat man erstmal eine gewisse anzahl erreicht, ist rechts nur noch dieser eine Pfeil und dann da jedes mal draufklicken und in der Liste rumsuchen nervt abgöttisch, daher versuche ich auch so wenig Tabs wie möglich zu erzeugen :P
    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If
    Wir haben den Launcher mal getestet und zwei Probleme festgestellt. Wenn man den Pfad zur Exe angegeben hat und auf "Spielen" klickt, startet Arma zwar, aber weiter als bis zum Logo von Arma3 gehts nicht.
    Wenn ich manuell über die arma3battleye.exe starte, geht es.

    Und irgendwie besteht noch ein Problem mit der Mission die man runterlädt.
    Wir haben genau die identische Mission Datei vom Server auf den Downloadserver getan. Aber sobald man diese ins richtige Verzeichnis runtergeladen hat und dem Server joinen will, lädt er totzdem die Mission runter. Er erkennt also die runtergeladene Mission nicht als die selbe an wie die, die auf dem Server liegt.

    Gruß
    Tecko
    musst mal testen ob er die Mission anerkennt wenn du sie manuell da hin kopierst, die heruntergeladende unterscheidet sich ja nicht von der originalen, würde also vermuten das dies ein Arma Problem ist, welches wir nicht beeinflussen können.

    und was das starten angeht, vermute ich das du den start

    VB.NET-Quellcode

    1. Process.Start(key.GetValue("Pfad", String.Empty).ToString, " 0 1 -connect=serverip " & key.GetValue("Parameter", String.Empty).ToString)


    noch anpassen musst, weil naja "serverIP" ist ja keine richtige IP denk ich mal ^^

    ich hab im prinzip nur die Form und die einzelnen Funktionen überarbeitet, ich weiss nicht wie man arma3 per programm starten kann, habe kein arma3
    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If
    Ok mein Fehler^^

    Aber das mit dem Download ist seltsam.
    Ich hab mal die Mission, die ich beim joinen runtergeladen habe im Ordner gelassen und dann nochmal die selbe auf den Downloadserver getan und in den Ordner runtergeladen über den Launcher. Resultat:

    Die untere ist vom Launcher...

    Und eine Nebenfrage. Status der Server prüft er alle 10 Sekunden? Hab ich das richtig raus gelesen aus dem Code? Also man muss nicht immer den Launcher neustarten, für den aktuellen Serverstatus?

    Edit: Benutze ja nach deinem Rat nun Visual Studio Express 2015, aber hab da noch nicht ganz die Übersicht. Beim 2010er Konnte ich das Ganze ja erstellen und der fertige Launcher war im Release Ordner drin, nur wie stell ich das Ganze hier an? Sry für die vielleicht dumme Frage...

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Tecko“ ()

    Ich kann mir nur vorstellen, das irgendwas am MD5-Hash anders ist, wodurch auch immer dieser beim hoch-/runterladen verändert wird. Könnte man das Ganze nicht lösen, indem man die .pbo Datei in ein Rar-Archiv packt und dieses durch den Launcher runterladen lässt. Am Besten wäre es dann natürlich noch, wenn der Launcher nach dem runterladen das Archiv direkt auch in den gewünschten Ordner gleich automatisch entpackt...

    Anders ist das für mich nicht zu erklären.

    Edit1: Habs getestet und es geht so. Nur müsste man das Ganze so in den Launcher integrieren, das er das Archiv nach dem runterladen entpackt und das Archiv nach dem entpacken auch direkt löscht. Frage nur wie...

    Edit2: @asusdk könntest du mir da eventuell zeigen, wo ich dafür was eintragen müsste bei deinem Code, damit ich "Edit1" so umsetzten könnte. Würde uns freuen.

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „Tecko“ ()

    ich sag dir aber gleich das das keine saubere lösung wird, man kann (zumindest soweit ich weis) nicht abwarten bis die zip dann entpackt ist usw usw. lass das deine user lieber selbst entpacken
    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If
    Also dann lassen wir das erstmal so.

    Aber wir haben gestern festgestellt, das die Statusabfrage des Gameservers irgendwie ins Leere abfragt. Weil wir hatten gestern den Kompletten Root neugestartet, bzw. kurzzeitig auch aus gehabt und er wurde trotzdem als Online angezeigt.

    Und es ist zwar nur ein kleiner Schönheitsfehler, aber wenn du mir sagst wo der Code dazu hin muss, kann ich das auch selber versuchen. Das Fenster der Einstellungen hat beim minimieren und schließen nicht dieses Mouseover vom Hauptfenster. Also das rote Aufleuchten und anscheinend nutz das Fenster auch nicht das Favicon vom Hauptfenster.

    Gruße
    Tecko
    also die online Abfrage passiert in der Sub OnlineOrNotOnline

    Spoiler anzeigen

    VB.NET-Quellcode

    1. Public Sub OnlineOrNotOnline()
    2. Dim client2 As New Ping
    3. Try
    4. client2.Send("85.13.139.161")
    5. SRV1 = "ist Online"
    6. picDownload.Visible = True
    7. labDownloadServer.ForeColor = Color.LawnGreen
    8. Catch ex As Exception
    9. SRV1 = "ist Offline"
    10. picDownload.Visible = False
    11. labDownloadServer.ForeColor = Color.Red
    12. End Try
    13. Dim p1 As New System.Net.IPEndPoint(System.Net.IPAddress.Parse("62.141.39.158"), 2302)
    14. Dim client1 As New System.Net.Sockets.UdpClient
    15. Try
    16. client1.Connect(p1)
    17. SRV2 = "ist Online"
    18. labAltisLifeServer.ForeColor = Color.LawnGreen
    19. Catch ex As Exception
    20. SRV2 = "ist Offline"
    21. labAltisLifeServer.ForeColor = Color.Red
    22. End Try
    23. client1.Close()
    24. labDownloadServer.Text = SRV1
    25. labAltisLifeServer.Text = SRV2
    26. End Sub


    und sollte nur Online zurückgeben wenn die Ip und der Port erreichbar sind

    favicon hab ich eben auch für settings eingebaut, und der mouseover würde auch ergänzt

    Greets
    Dateien
    If Energy = Low Then
    Drink(aHugeCoffee)
    Else
    Drink(aHugeCoffeeToo)
    End If