Sujet n°11445
Posté par Eternalis le 5 Mai - 14:42 (2012)
Titre : Créer son launcher Pokémon de A à Z
                         
Créer son launcher Visual Basic de A à Z

Présentation :

Le but de ce tutoriel sera de vous assister dans la création de votre launcher en VB.Net, j'essaierai de faire ce tuto de façon ordonné et expliqué, histoire de ne pas vous perdre en chemin. :mrgreen:

                         
                         

Prérequis :

- Microsoft Visual Basic 2010 Express
- Format factory ( Facultatif mais pratique )
- Un accés FTP - Site Web ( Facultatif, inclus plus d'options )
- Un compte twitter ( Facultatif, inclus plus d'options )


Téléchargements & liens :

Vous pouvez trouver Microsoft Visual Basic 2010 Express ICI
Je vous laisse trouver une serial 42

Vous pouvez trouver Format Factory ICI

Vous pouvez créer un hébergement Web gratuit ( pack 10 MO ) ICI

Vous pouvez créer un compte twitter ICI

Sommaire :

1) Nouveau projet, Image de fond, les icônes, le titre du launcher.
2) Le code des boutons "Jouer", "Forum", "Mise à jour","Quitter".
3) Le code de l'Updater ( Mise à jour ).
4) Ajout du Twitter pour les news.
5) Ajouter une musique de Fond.

PARTIE 1
                         
Nouveau projet, Image de fond, les icônes, le titre du launcher.



Premièrement, si ça n'est pas déjà fait, installez Visual Basic puis enregistrer le produit avec la clé fourni dans la partie "téléchargement" de ce tuto.

Commençons ! Ouvrez Visual Basic, la page d'accueil s'affiche ! Allez dans "Fichier" -> "Nouveau Projet"
Une fenêtre s'ouvre alors, sélectionné "Application Windows Form" et donner le nom à votre Projet, moi je le nommerais "Launcher Pokémon Darkness Edition" !
Cliquez sur OK.

Cette fenêtre va alors apparaitre, c'est votre aperçu de votre futur launcher :

                         

                         


A présent customisons le design de tout ça ! Premièrement nous allons mettre donner un titre à la fenêtre ! Pour cela? cliquez sur votre aperçu de fenêtre.
Et en bas à droite, dans le tableau, cherchez la valeur "Text" = Form1. NE CONFONDEZ PAS AVEC LA VALEUR (Name) = Form1 !


                         

Voila, parfais ! Ensuite changeons les icônes du launcher ! Toujours dans le tableau, cherchez la valeur "Icon", cliquez sur les petit "..." a coté de l'image Jaune rouge et bleu et sélectionner votre icône
(une icône est au format .ico, si vous n'en avez pas, télécharger FormatFactory, lien dans la section "téléchargement" de ce tuto, il vous permettra de changer le format de vos images pour en faire des .ico, je ne fais pas de screen de ce logiciel, il est très simple à utiliser et en francais)



Ce n'est pas fini ! Il reste encore une seconde icône à changer et un second titre aussi ! Pour cela suivez le tuto en image ci dessous Clin d'œil foireux , il est très explicite :



                         

Voila parfais ! Retournez dans l'onglet form1.vb à présent ! Nous allons mettre votre image de fond tant attendu  ! Carte bancaire
Cliquez sur la fenètre, puis dans le tableau en bas, a droite, cherchez la valeur "BackgroundImage", et cliquez sur les "..." pour sélectionner votre image !
Pour cela, tuto en image très simple encore une fois !



A présent, à 99% des cas, la taille de votre image n'est pas adapté et .... SA DEVIENT MOCHE :mrgreen: Par de soucis, tonton Eternalis  est la, pour régler ça cherchez la
valeur "BackgroundImageLayout" et sélectionner ce qui vous convient le mieux ( voir image ci dessous )
Personnellement, je recommande "Stretch"
                         
                         


Maintenant, vas dans "Fichier"-> "Enregistrer tout"

Voila ! C'est sur ce magnifique fond d'écran que nous complétons la partie Design ! S'il te reste du courage ! Fais péter la partie 2 ! Ow yeah !
                         
                         
                         
                         
                         
                         


PARTIE 2
                         
Le code des boutons "Jouer", "Forum", "Mise à jour","Quitter".


Bien pour commencer, nous allons créer ces quatre boutons ! Pour cela allez dans l'onglet "Form1.vb" ( l'apercu de votre projet quoi )
Appuyer sur "Ctrl + Alt + X" ou allez dans "Affichage -> Autres Fenètres-> Boite à outils"
Faite "cliquer-glisser" quatre "button" sur votre projet ! positionnez les comme bon vous semble !
Ensuite, pour leur donner un nom, cliquez sur un des boutons --> Tableau en bas, à droite --> valeur "text" et modifiez le texte du bouton !
Appelez les "Jouer", "Forum", "Mise à jour" et "Quitter"!

Passons maintenant aux choses sérieuse, Double cliquez sur le bouton "Forum", la fenêtre de code va s'ouvrir :


Inscrivez ceci juste avant le End Sub :
Code:








System.Diagnostics.Process.Start("LIEN DE VOTRE FORUM")












Retournez sur form1.vb ( Apercu projet )
Double-cliquez sur le bouton "Jouer"

Et mettez ce code ci :
Code:

























 System.Diagnostics.Process.Start("Nom de votre jeu.exe") 


























C'est fait ? Niquel, tu est un pro !
Et c'est reparti !
Retournez sur form1.vb ( Apercu projet )
double-cliquez sur le bouton "Quitter" et ajoutez juste ce code ci :

 
Code:
























End 


























Maintenant, vas dans "Fichier"-> "Enregistrer tout"
                         

Voila ! C'en est fini de la partie 2 ! Tu as trop assuré vieux ! :+1:

                         
                         
                         



PARTIE 3
                         
Le code de l'Updater ( Mise à jour )                         


Très bien, c'est maintenant l'heure de créer votre Updater, accrochez vous a vos chaussettes et c'est parti !

Premièrement double cliquez sur votre bouton "Mise a jour" !
Entrez y ce code entre les lignes "private sub ..." et "End sub"
évidemment remplacer le lien par votre lien du fichier.rgssad
        
Code:
If Exists("game.rgssad") Then
Kill("game.rgssad")
My.Computer.Network.DownloadFile("http://www.votresite.fr/Game.rgssad", "game.rgssad")
Else
My.Computer.Network.DownloadFile("http://www.votresite.fr/Game.rgssad", "game.rgssad")
End If 







       
Ensuite, remonter tous en haut de la fenêtre de code, vraiment tout en haut !
Et ajouter une ligne avec votre touche Insert (la touche Entrée)
et mettez y ceci :

 
Code:






Imports System.IO.File 






Voici ce que vous devez avoir :



Que fais cet updater concrètement ?

Il vérifie si l'archive de votre jeu Game.rgssad existe dans le dossier de l'updater :

-> Si il existe, Game.rgssad sera supprimé et la nouvelle version sera téléchargé.

-> Si il n'existe pas, la nouvelle version Game.rgssad sera téléchargé.

Ce système fonctionne sur n'importe quel extensions de fichiers
Vous pouvez même faire télécharger un A-lire.txt par exemple ou une photo.png, à vous de voir ce qui peut vous être utile !

Les avantages de ce système :

- Aucun lag - freeze
- Adapté à toutes les extensions de fichiers (.txt .mp3 .wav .wmv .rgssad etc etc ...)
- Téléchargement Ultra-Rapide, en moyenne 3 secondes, 6-7 pour les gros projets

Libre a vous d’arrêter ici mais ce serez dommage & peu pratique d'avoir fais cet updater \/
Pour que vos utilisateurs sachent qu'il y a eu une mise a jour, vous devriez continuer la suite de ce tuto avec la partie 4 ci dessous
|
|
\|/



PARTIE 4
                         
Ajout du Twitter pour les news.                         



Bien, je vous sens a présent motivé pour les news via Twitter ! oopa Falco Lombardi
Premièrement il vous faudrat un compte twitter ! Si cela n'est pas déja fait aller sur le lien fourni dans la section "Liens de ce tuto" !

Ensuite aller sur cette page : Twitter pour launcher
Sélectionner "Pour Site Web" -> Widget de profil -> Nom de compte : le votre  Clin d'œil foireux Non sans blague ?
Ensuite faite "tester les paramètres", s'il n'y a pas de message affiché, c'est que vous n'avez fait encore aucun tweet mais c'est pas grave Clin d'œil foireux !
Maintenant, faites copier-coller le script obtenu en cliquant sur "Obtenir le code"

Vous allez ensuite créer un fichier texte sur votre bureau ! Et mettez ca dedans et pensez a ajouter:

 
Code:






<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=windows-1252"></HEAD>
<BODY><script charset="utf-8" src="http://widgets.twimg.com/j/2/widget.js"></script>

COPIEZ COLLER VOTRE SCRIPT TWEETER ICI

</BODY></HTML>






              
             
 


C'est fait ? bien, faites enregistrer sous -> news.html par exemple.
Maintenant mettons ça en ligne !
Allez sur votre FTP/ Accés site web, pour y accéder, je recommande le logiciel "FilleZilla" dont vous pouvez trouver un tuto complet ICI !

Uploadez donc votre fichier news.html à la racine du site. il sera accessible à l'adresse "http://www.votresite.fr/news.html" !

Passons au chose sérieuse si vous le voulez bien :cheaterisobvious:

Maintenant, il vas falloir incorporé ce tweeter dans notre launcher !
Allez sur votre projet Visual Basic, ouvrez le si ce n'est pas déja le cas !

Allez sur votre Boite à Outils (Ctrl+Alt+X) et ajouter un WebBrowser et placez le ou vous le souhaitez !

http://multigaming.alwaysdata.net/tuto/12.png


Cliquez sur ce nouveau WebBrowser, dans le tableau à droite mettez :
URL -> http://www.votresite.fr/news.html
ScrollBarEnable -> False (Sinon c'est moche)
ScriptErrorS... -> False ou True au choix ! True -> Dis s'il y a une erreur False -> n'avertit pas en cas d'erreur !
Appuyez sur F5 pour tester votre projet et corriger si besoin ma taille du WebBrowser !
                
                
                

Voila c'est fait ?
Niquel ! Maintenant chaque Tweet que vous ferez sera visible sur votre Launcher, utile pour signaler les Mise à Jours n'est ce pas ?

Avant de quitter n'oublier pas d'aller dans "Fichier"-> "Enregistrer tout"   

Voila c'est fini ! Pour la peine on peut allez faire l'amour à un :censure:
ok, je sors Gros matou qui ronronne
                

                
                

 



PARTIE 5
                         
Ajouter une musique de Fond.                         


             

Je ne vais pas faire de screen pour mettre une musique de fond, c'est très simple ! Oui, Oui, vraiment !

Premièrement, il te faut une musique de format .wav, si le format ne convient pas, utilisez le logiciel Format Factory fourni dans la section téléchargement de ce tutoriel !

Ok, parfais, renommez votre musique en "music.wav" ! Maintenant, allez sur Visual Basic et ouvrez votre projet !
Sur l'apercu de votre projet (Form1.vb) , double-cliquez sur la fenétre ( barre bleu contenant le titre )
La fenêtre de code s'ouvre alors ! Avant le "End Sub" mettez ces lignes de code :
                      

Code:






My.Computer.Audio.Play("music.wav", AudioPlayMode.BackgroundLoop)






Ensuite, regardons si cela fonctionne !
Allez dans "vos documents" -> "Visual Studio" -> "projects" -> "nom de votre projet" -> "nom de votre projet 2" -> "bin" -> "debug"
Et mettez dans ce dossier votre "music.wav" !
Revenez sur votre projet visual Studio ! Voyons si cela marche, lancons une simulation !
pour cela appuyez sur "F5"
Tadaaa ! Votre musique est la ! oopa pour certain Falco Lombardi
Pour arrèter la simulation, fermez juste la fenêtre qui est apparu ou profitez-en pour tester le bouton "Quitter" 42
Avant de quitter n'oublier pas d'aller dans "Fichier"-> "Enregistrer tout"
             

      
      
      


BONUS !
                         

Si vous avez pétez un plomb pendant ce tuto pour X raison et que vous êtes bloqué, ce devrait vous aider à vous détendre :mrgreen:
Je ne suis pas responsable des minutes de vie que vous allez perdre !




Un "Merci" ne tue pas Carte bancaire
          
          

Posté par Akito アート le 5 Mai - 17:47 (2012)
Merci ! Mais par contre, pour le code pour ouvrir le fichier .exe, si on en a plusieurs du même nom comment on fait ?
De plus, j'ai utiliser donc un autre code et on me dit que le RGSS s'est arrêté de fonctionner, est-ce normal.
Sinon, pour ceux qui ont plusieurs même nom de fichier, essayer ce code:
Code:

Shell("C:\Le(s)dossierouesttonfichier.exe\TonProgramme.exe")


Voilà !

Post Scriptum: "J'aime"

EDIT; Du BBCode c'est glissé dans le code pour la musique de fond.

Posté par Eternalis le 5 Mai - 18:00 (2012)
 
Citation:

 si on en a plusieurs du même nom comment on fait ?

Plusieurs Game.exe ? NINJA POWA !
Sinon le problème avec le code :

Shell("C:\Le(s)dossierouesttonfichier.exe\TonProgramme.exe")  

C'est que ca marchera dans un dossier spécifique, mais si par exemple le joueur installe le jeu sur son bureau, c'est rapé NINJA POWA !
Mais je t'avoue n'avoir jamais utilisé Shell donc a vérifié si on peut faire de bon ptits truc avec !

Sinon si ca te dit que RGSS Player à cessé de fonctionner, cela n'a rien a voir avec le launcher vu qu'il sont complétement indépendant l'un de l'autre.
Sa ne vient pas des RGSS100.dll xp-vista ?

Merci d'avoir vu pour le BBcode :mrgreen:

Posté par Akito アート le 5 Mai - 18:03 (2012)
Citation:
Si on a plusieur même nom comment on fait ?
Citation:
Plusieurs Game.exe ?


Bah oui, si on a un projet sur PSPDS un projet PSPDS5G, etc...

Posté par Eternalis le 5 Mai - 18:38 (2012)
Un launcher n'est a la base utilisé que pour un seul Jeu Clin d'œil foireux

Je pense (pas certains) Que a la limite on pourrais faire plusieurs boutons -> "jouer à Jeu1" - "jouer à Jeu2" et leur mettre en code ceci :

jouer à Jeu1 ->System.Diagnostics.Process.Start("\DossierJeu1\Game.exe")  
jouer à Jeu2 ->System.Diagnostics.Process.Start("\DossierJeu2\Game.exe")  

Ou tous simplement faire un jeu Game.exe et renommez les autres pour qu'il s'appelle Game2.exe par exemple.

Moi parle chinois ou pas ? 42

Posté par Nosky le 5 Mai - 18:46 (2012)
Bonsoir, juste comme ça, pourrais-je avoir quelques informations sur ce qu'est un launcher précisément s'il vous plait ?

Posté par Eternalis le 5 Mai - 18:54 (2012)
Un launcher se traduit littéralement par "lanceur" ou "plate-forme de lancement".

Pour résumé, c'est un menu qui te permet de lancer ton jeu avec une façon stylé, on peut y mettre des effets, une musique de fond etc ...
Mais ce qui est surtout pratique, c'est qu'il permet de mettre ton jeu a jour directement via internet donc si tu créer un projet et que tu sors un démo, et que par la , tu en ressors une autre, les joueurs de ta dèmo auront leur jeu qui ce mettra automatiquement à jour.
Il permet aussi de faire des liens vers ton site etc... etc...

On retrouve souvent des launchers pour les jeux en ligne ( 90% des cas )
S4league, WorldOfWarcraft, LineageII et autres jeux en possèdent par exemple !

Des questions ? :mrgreen:

Posté par Nosky le 5 Mai - 18:56 (2012)
Ow, ça a l'air super cool ! (Même si le tuto parait long)


PS : Fais attention, il y a peut-être un chat ninja derrière toi ! Petit saligaud mal élevé

Posté par Eternalis le 5 Mai - 19:45 (2012)
Il fais le guet :mrgreen:
Et si le tuto a l'air long, c'est vrai, mais il n'est pas si compliqué Clin d'œil foireux

Posté par Skaaz le 5 Mai - 21:47 (2012)
C'est cool ça, est ce que tu saurais remplacer les boutons basiques par des images ?
Merci du partage !

Posté par Eternalis le 5 Mai - 21:52 (2012)
Oui tu peux en séléctionnant ton bouton et dans le tableau en bas à droite, c'est la valeur "Image" ou BackgroundImage" (les deux reviennent au même)
Mais je te conseille de suivre le tuto que je ferais demain si tu veux faire des boutons avec des Images donc patience :mrgreen:

Posté par Akito アート le 6 Mai - 09:32 (2012)
Nosky a écrit:
(Même si le tuto parait long)


Long mais très simple, vraiment très simple !

Posté par Nosky le 6 Mai - 13:30 (2012)
Comment on sort le projet s'il vous plait ?

Posté par Eternalis le 6 Mai - 13:35 (2012)
tu enregistre tout et tu vas dans
"tes documents" -> "Visual Studio" -> "projects" -> "ton projet" -> "ton projet 2" -> "bin" -> "debug"
et l'éxecutable est ici, tu peux le copier-coller ou couper coller sur ton bureau par exemple

Posté par Dark_Ray le 6 Mai - 16:08 (2012)
Et ne pas oublier de copier la musique avec sur le bureau sinon elle ne passe pas


En tout cas c'est un tuto génial ! J'ai pu me faire un super Launcher grâce à toi ! Je t'en remercie Clin d'œil foireux

Posté par PantoufleZehef le 15 Mai - 18:32 (2012)
Curieux de voir l'updater.. C'est vraiment intéressant en tout cas, merci

Posté par Eternalis le 15 Mai - 18:37 (2012)
Pour l'updater j'y bosse Clin d'œil foireux

Posté par PantoufleZehef le 15 Mai - 18:47 (2012)
Je me demande comment faire un updater simple en fait.. hâte de voir de quelle façon tu vas nous pondre une meule.

Posté par Silver le 16 Mai - 19:17 (2012)
Vous pouvez déjà vous référer à RUpdate de Zellyunie, disponible ici : ./9981.html
C'est un très bon updater.

Posté par PantoufleZehef le 16 Mai - 20:55 (2012)
J'ai déjà codé mon launcher et fait un prototype de système màj en VB depuis un moment, et mettre a jour le rgssad je sais faire. Le souci vient des autres fichiers ajoutés, fichiers audio notamment..

Posté par Eternalis le 17 Mai - 12:42 (2012)
MAJ - 17 mai 2012
Ajout du tuto pour l'updater.

@PantoufleZehef
Si tu as d'autre fichier à ajouter, tu n'a pas le choix tu dois faire ceci:
My.Computer.Network.DownloadFile("http://www.tonsite.fr/jeu/music/musique_exemple.mp3", "./music/musique_exemple.mp3")
Et ca pour toutes tes musiques ! Tu le comprendras c'est bien ch*ant a faire Clin d'œil foireux VB ne gére pas le téléchargement de dossier complet pour le moment.
Une autre solution consiste à faire télécharger une archive "music.zip" et ordonner au launcher de la décompresser ( Zlib est très bien pour ca mais compliqué )

@Silver
Le RUpdate de Zellyunie est très bien, le seul problème c'est qu'il s'agit d'un script incorporé au jeu et que cela augmente énormément le temps pour télécharger un malheureux .rgssad
Un rupdate vas prendre 30 minutes
VB.net vas prendre au maximum 10 secondes.

Posté par PantoufleZehef le 17 Mai - 12:56 (2012)
Oui, donc ma méthode est bien plus développée.. J'ai de mon coté une détection si y a une mise a jour qui active/désactive le bouton en conséquent, etc. Sinon pour les .zip, ça m'intéresse.

Posté par Eternalis le 17 Mai - 13:30 (2012)
PantoufleZehef a écrit:

Oui, donc ma méthode est bien plus développée.. J'ai de mon coté une détection si y a une mise a jour qui active/désactive le bouton en conséquent, etc. Sinon pour les .zip, ça m'intéresse.

Tu as fais un système avec des .txt contenant des infos de version pour cela je suppose ?
J'avais penser à faire ca, mais j'ai juger trop compliqué pour une simple archive et je préférais lier avec les news via tweeter
Par contre tu devrais partager ca avec les autres et faire un tuto sa en intéressera plus d'un je pense Clin d'œil foireux

Posté par PantoufleZehef le 20 Mai - 14:10 (2012)
En gros j'ai un système de changement de dll, un updater qui télécharge un .zip de mise à jour, détecte s'il y en a une avec un version.txt.... Mais impossible d'en faire un tuto, c'est trop compliqué, j'ai même pas tout compris à ce que j'ai fais.
Je partage tout de même le code de l'updater, si ça peut aider:
Spoiler

Code:

Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
        Button3.Enabled = False
        Button1.Enabled = False



        Me.lblStats.Text = "Status: Recherche d'une mise à jour..."
        'Gets bernard and latest versions for comparison

        If System.IO.File.Exists("Data\Version.txt") = False Then
            My.Computer.Network.DownloadFile("http://dl.dropbox.com/u/37262071/Version.txt", "Data\Version.txt")
        End If
        If System.IO.File.Exists("Data\Update.txt") = True Then
            Kill("Data\Update.txt")
        End If
        My.Computer.Network.DownloadFile("http://dl.dropbox.com/u/37262071/Version.txt", "Data\Update.txt")


        'fichier 1

        Dim olol1 As New System.IO.StreamReader("Data\Version.txt", System.Text.Encoding.Default)
        Dim local As String

        local = olol1.ReadLine
        olol1.Close()

        'fichier 2

        Dim olol2 As New System.IO.StreamReader("Data\Update.txt", System.Text.Encoding.Default)
        Dim distance As String

        distance = olol2.ReadLine
        olol2.Close()


        If local >= distance Then
            Kill("Data\Update.txt")
            MsgBox("Aucune mise à jour n'est disponible", vbOKOnly + vbInformation, "Mise à Jour.")
            Me.Close()
        Else
            'MsgBox("Une nouvelle Mise à jour est diponible.", vbOKOnly + vbInformation, "Mise à Jour.")
            Kill("Data\Update.txt")
            AutoUpdate()
            Button3.Enabled = False
            Kill("Data\Version.txt")
            My.Computer.Network.DownloadFile("http://dl.dropbox.com/u/37262071/Version.txt", "Data\Version.txt")
            Button1.Enabled = True
        End If

        'MsgBox("Moui je fais la mise à jour", vbOKOnly + vbInformation, "Mise à Jour")

        'LE CODE EOH
        

        
        

    End Sub

    Private Sub Form4_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        If Button3.Enabled = False Then
            Button3.Enabled = True

        End If
        If System.IO.File.Exists("Data\maj.zip") = True Then
            Kill("Data\maj.zip")
        End If
    End Sub

    Private Sub ProgressBar1_Click(sender As System.Object, e As System.EventArgs) Handles ProgressBar1.Click

    End Sub


    Public Shared Sub AutoUpdate()
        httpclient = New WebClient
        Form4.lblStats.Text = "Status: Préparation du téléchargement des fichiers..."

        'ET ON FAIS TOURNER LES SERVIETTES
        Dim directory As String = Application.StartupPath & "\Data\maj.zip"
        Dim link As String = "http://dl.dropbox.com/u/37262071/maj.zip"
        'Start downloading the cul setup
        Try
            Form4.lblStats.Text = "Status: Téléchargement..."
            httpclient.DownloadFileAsync(New Uri(link), directory)
            Do While httpclient.IsBusy
                Application.DoEvents()
            Loop
            InstallPatch()
        Catch ex As Exception
            Form4.lblStats.Text = "Status: Le téléchargement à échoué. Veuillez vérifier votre connexion internet."
        End Try
    End Sub

    Public Shared Sub InstallPatch()
        Try
            Dim lp As Integer = 0
            Form4.lblStats.Text = "Status: Installation..."
            archiver = New ZipForge()
            ' The name of the ZIP file to unzip
            archiver.FileName = Application.StartupPath & "\Data\maj.zip"
            ' Open an existing archive
            archiver.OpenArchive(System.IO.FileMode.Open)
            ' Default path for all operations                
            archiver.BaseDir = Application.StartupPath & "\Data"
            ' Extract all files from the archive to program root folder
            Do Until lp = 1
                lp = lp + 1
            Loop
            archiver.ExtractFiles("*.*")
            ' Close archive
            archiver.CloseArchive()
            Form4.lblStats.Text = "Status: Installation Réussie! Mise à jour achevée avec succès"
            Kill("Data\maj.zip")


        Catch ex As Exception
            Form4.lblStats.Text = "Status: Échec de l'installation! Merci de signaler ce problème."
        End Try
    End Sub


    Private Shared Sub httpclient_DownloadProgressChanged(sender As Object, e As System.Net.DownloadProgressChangedEventArgs) Handles httpclient.DownloadProgressChanged
        Form4.ProgressBar1.Maximum = e.TotalBytesToReceive
        Form4.ProgressBar1.Value = e.BytesReceived

        Form4.Label2.Text = e.ProgressPercentage & "%"

        Dim MB As Single
        Dim MB2 As Single
        Dim KB As Single
        Dim KB2 As Single

        MB = ((e.BytesReceived / 1024) / 1024)
        MB2 = ((e.TotalBytesToReceive / 1024) / 1024)

        KB = (e.BytesReceived / 1024)
        KB2 = (e.TotalBytesToReceive / 1024)

        If KB And KB2 <= 1024 Then
            Form4.Label5.Text = "Téléchargé @ " & e.ProgressPercentage & "% / " & KB.ToString("N2") & " Ko de " & KB2.ToString("N2") & " Ko"
        ElseIf KB <= 1024 And KB2 >= 1024 Then
            Form4.Label5.Text = "Téléchargé @ " & e.ProgressPercentage & "% / " & KB.ToString("N2") & " Ko de " & MB2.ToString("N2") & " Mo"
        ElseIf KB And KB2 >= 1024 Then
            Form4.Label5.Text = "Téléchargé @ " & e.ProgressPercentage & "% / " & MB.ToString("N2") & " Mo de " & MB2.ToString("N2") & " Mo"
        End If

        If Form4.Label2.Text = "100%" Then
            Form4.lblStats.Text = "Status: Téléchargement Réussi"
        End If
    End Sub


    Private Shared Sub archiver_OnOverallProgress(sender As Object, progress As Integer, timeElapsed As System.TimeSpan, timeLeft As System.TimeSpan, operation As ComponentAce.Compression.Archiver.ProcessOperation, progressPhase As ComponentAce.Compression.Archiver.ProgressPhase, ByRef cancel As Boolean) Handles archiver.OnOverallProgress
        Form4.ProgressBar1.Maximum = 100
        Form4.ProgressBar1.Value = progress
    End Sub



    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Me.Close()

    End Sub


Posté par Nuri Yuri le 20 Mai - 20:59 (2012)
Eternalis a écrit:
@Silver
Le RUpdate de Zellyunie est très bien, le seul problème c'est qu'il s'agit d'un script incorporé au jeu et que cela augmente énormément le temps pour télécharger un malheureux .rgssad
Un rupdate vas prendre 30 minutes
VB.net vas prendre au maximum 10 secondes.

Je suis totalement opposé à cet avis pour quelques raisons :
VB.net ne mettra pas 10 secondes à DL le fichier qui ferait 43MB alors que RUpdate en mettrait 30 minutes, ton estimation est fausse, mes navigateurs eux-même ne peuvent pas DL un fichier aussi vite car les serveurs Apache ne délivre jamais la pleine puissance de la ligne aux utilisateurs et les FAI comme Orange ont le dont de brider toute connexion internet pointant vers un site français ou américain. VB.net mettra 29 minutes alors que RUpdate en mettra 30 (la faute aux Graphics.update). Les deux systèmes utilisent quasiment les même bibliothèques et de toute façons ça va retomber sur Winsock alors pourquoi l'un serait plus lent que l'autre ? Simplement parce que les utilisations des bibliothèques est pas faite de la même façon, mais donner un tel gouffre aux lecteurs du sujet est du mensonge.

Ceci m'a donné envie de recoder WebFile pour télécharger un fichier quelconque sur internet et voir ce que ça donne. Voici les résultats des tests sur 'http://ns223506.ovh.net/manga-anime/127b119c676950bbadbe138258a19bd0/wallpaper-1933829.jpg' :
Test 1
Opéra : 789ms / Chrome : 817ms / RGSS : 721ms
Test 2
Opéra : 724ms / Chrome : 710ms / RGSS : 750ms

Biensur ces résultats sont totalement variables et dépendants de la charge du serveur web les 721 ms était un gros coup de chance comme les 710 de Chrome.

Le fait que ce soit incorporé au jeu n'augmente pas énormément comme tu le dis le temps de téléchargement, au pire, on peut coder ça dans une DLL et balancer un vrai thread comme ça ça ira aussi vite que ton programme et en plus ou pourra jouer en même temps

Tous ces paramètres dépendent uniquement de l'utilisation de TCP/IP (globalement) et des la bande passante de l'utilisateur et du serveur. En tout cas faire un launcher en RGSS peut être bien plus beau et bien plus rapide pour ceux qui savent déjà coder en ruby que bouffer du VB.net avec des choses qu'on ne connait pas...

Après mon point de vue sur les launchers c'est juste pour faire beau quand c'est intégré au jeu et c'est juste casse couilles quand c'est hors du jeu, les launchers de certains MMO vérifient tous les fichiers ce qui prend du temps et c'est assez frustrant de pas pouvoir jouer tout de suite alors qu'il n'y pas de MAJ.

Posté par PantoufleZehef le 20 Mai - 22:05 (2012)
Et est-ce que le RUpdate prend en compte les éventuels fichiers audio ajoutés?

Posté par Nuri Yuri le 20 Mai - 22:38 (2012)
Je sais pas vraiment, je pense qu'il se charge pour le moment de ne mettre à jour que le RGSSAD mais ceci peut être ajouté.
Sinon, pour l'utilisation de fichiers TXT pourquoi ne pas utiliser une vraie page dynamique (vu que vous passez par un serveur WEB) qui contiendrait les informations nécessaires selon les versions et dans un format de fichier approprié aux données dynamiques comme le XML. Par l'utilisation de ceci vous pourrez télécharger que les fichiers utiles à la nouvelle version et probablement les fichiers perdus et/ou corrompus.

Posté par Dark_Ray le 21 Mai - 11:47 (2012)
Moi j'ai trouvé bien plus simple et je m'en contenterais
Pour l'Updater j'ai un lien qui redirige directement vers le dernier installateur .exe de mon jeu !
Ainsi que des infos concernant celle-ci (screen ci-dessous).


Avec en plus le widget twitter, la MàJ est toujours bien annoncée ^^


Ecran principal :







Ecran d'Update :











Tout passe par des fichier .html que j'ai mis sur un serveur de 1Go qui est amplement suffisant pour un projet RPG Maker XP (surtout ci celui-ci est compressé dans un fichier .exe)

Posté par ๖ۣۜ Zelly le 21 Mai - 13:21 (2012)
PantoufleZehef a écrit:
Et est-ce que le RUpdate prend en compte les éventuels fichiers audio ajoutés?



Actuellement, le dossier "Audio" est le seul qui ne soit pas inclus dans l'encryptage donc par conséquent il n'est pas mis à jour automatiquement.
Mais comme l'a dit Nagato Yuki (qui m'a beaucoup aidé pour le script) ce n'est pas définitif. Il suffirait d'un petit bout de code pour pouvoir télécharger le dossier audio à la racine du projet automatiquement sans que cela soit affiché sur l'interface de RUpdate.
Encore une fois le système est encore en bêta, malgré tout il reste le seul système de mise à jour par interface graphique existant pour RMXP. Sachez cependant que j'ai songé à me tourner vers VBnet dans l'optique de compléter le projet qu'est RUpdate.

Posté par PantoufleZehef le 21 Mai - 15:50 (2012)
Petit aperçu de mon launcher si ça peut intéresser:
Système de Maj



Et la petite fenêtre au cas où le rgss100j.dll foire:
Lapin



J'ai voulu faire simple et épuré.

Posté par Eternalis le 24 Mai - 17:56 (2012)
Nagato Yuki a écrit:

Eternalis a écrit:
@Silver
Le RUpdate de Zellyunie est très bien, le seul problème c'est qu'il s'agit d'un script incorporé au jeu et que cela augmente énormément le temps pour télécharger un malheureux .rgssad
Un rupdate vas prendre 30 minutes
VB.net vas prendre au maximum 10 secondes.

Je suis totalement opposé à cet avis pour quelques raisons :
VB.net ne mettra pas 10 secondes à DL le fichier qui ferait 43MB alors que RUpdate en mettrait 30 minutes, ton estimation est fausse, mes navigateurs eux-même ne peuvent pas DL un fichier aussi vite car les serveurs Apache ne délivre jamais la pleine puissance de la ligne aux utilisateurs et les FAI comme Orange ont le dont de brider toute connexion internet pointant vers un site français ou américain. VB.net mettra 29 minutes alors que RUpdate en mettra 30 (la faute aux Graphics.update). Les deux systèmes utilisent quasiment les même bibliothèques et de toute façons ça va retomber sur Winsock alors pourquoi l'un serait plus lent que l'autre ? Simplement parce que les utilisations des bibliothèques est pas faite de la même façon, mais donner un tel gouffre aux lecteurs du sujet est du mensonge.

Ceci m'a donné envie de recoder WebFile pour télécharger un fichier quelconque sur internet et voir ce que ça donne. Voici les résultats des tests sur 'http://ns223506.ovh.net/manga-anime/127b119c676950bbadbe138258a19bd0/wallpaper-1933829.jpg' :
Test 1
Opéra : 789ms / Chrome : 817ms / RGSS : 721ms
Test 2
Opéra : 724ms / Chrome : 710ms / RGSS : 750ms

Biensur ces résultats sont totalement variables et dépendants de la charge du serveur web les 721 ms était un gros coup de chance comme les 710 de Chrome.

Le fait que ce soit incorporé au jeu n'augmente pas énormément comme tu le dis le temps de téléchargement, au pire, on peut coder ça dans une DLL et balancer un vrai thread comme ça ça ira aussi vite que ton programme et en plus ou pourra jouer en même temps

Tous ces paramètres dépendent uniquement de l'utilisation de TCP/IP (globalement) et des la bande passante de l'utilisateur et du serveur. En tout cas faire un launcher en RGSS peut être bien plus beau et bien plus rapide pour ceux qui savent déjà coder en ruby que bouffer du VB.net avec des choses qu'on ne connait pas...

Après mon point de vue sur les launchers c'est juste pour faire beau quand c'est intégré au jeu et c'est juste casse couilles quand c'est hors du jeu, les launchers de certains
MMO vérifient tous les fichiers ce qui prend du temps et c'est assez frustrant de pas pouvoir jouer tout de suite alors qu'il n'y pas de MAJ.

A tu testé ? Moi oui, et si ton navigateur met 29 minutes à télécharger un rgssad, c'est ta connexion :mrgreen:
J'ai essayé sur le rgssad de pokémon gemme.

Posté par Nuri Yuri le 24 Mai - 18:13 (2012)
Envois moi le lien de la RGSSAD de gemme et je te dis tout de suite mais généralement quand je DL un fichier depuis HTTP les fichiers supérieurs à 10MB ne mettent pas 10 secondes à se téléchargé sauf si le serveur le lègue une bande passante de 10.3MB (mon débit de téléchargement).
J'ai testé le téléchargement d'un fichier de 72.2Mo, opéra téléchargeais à 685Ko/s, le RGSS à 674Ko/s. (Depuis mon serveur en WEB, en local je fais du 7Mo/s; sur un autre serveur j'ai jamais ces débits exotiques.)