Le Deal du moment :
Aliexpress : codes promo valables sur tout le site
Voir le deal

Aller en bas
Azuma-01
Azuma-01
Membre

Nombre de messages : 94
Age : 31
Localisation : Amos
Distinction : aucune
Date d'inscription : 22/09/2009

[résolu (enfin si je retombe pas en mode boulet)]Updater Empty Re: [résolu (enfin si je retombe pas en mode boulet)]Updater

Ven 16 Avr 2010 - 18:13
Tu parle de son système pour télécharger des fichiers via internet?
C'est par ==>ICI<==.
Berka
Berka
Staffeux retraité

Nombre de messages : 1832
Age : 33
Localisation : Paris
Distinction : rubyste déglingué
9ème dan en scripting-no-jutsu

Nouveau Justine Beber ;P
Date d'inscription : 16/12/2007
http://rpgruby.olympe-network.com

[résolu (enfin si je retombe pas en mode boulet)]Updater Empty Re: [résolu (enfin si je retombe pas en mode boulet)]Updater

Ven 16 Avr 2010 - 18:31
et tu as testé le script xp avec vx ?
Berka
Berka
Staffeux retraité

Nombre de messages : 1832
Age : 33
Localisation : Paris
Distinction : rubyste déglingué
9ème dan en scripting-no-jutsu

Nouveau Justine Beber ;P
Date d'inscription : 16/12/2007
http://rpgruby.olympe-network.com

[résolu (enfin si je retombe pas en mode boulet)]Updater Empty Re: [résolu (enfin si je retombe pas en mode boulet)]Updater

Ven 16 Avr 2010 - 19:30
Nan, t'as mal compris ma question:
As-tu essayé d'utiliser ce script pour rmxp avec ton jeu rmvx ?
Parce que je me souviens qu'il était polyvalent
Berka
Berka
Staffeux retraité

Nombre de messages : 1832
Age : 33
Localisation : Paris
Distinction : rubyste déglingué
9ème dan en scripting-no-jutsu

Nouveau Justine Beber ;P
Date d'inscription : 16/12/2007
http://rpgruby.olympe-network.com

[résolu (enfin si je retombe pas en mode boulet)]Updater Empty Re: [résolu (enfin si je retombe pas en mode boulet)]Updater

Ven 16 Avr 2010 - 19:36
Ok... désolé !

Code:
#-------------------------------------------------------------------------------
#                                Mise à jour                               
#-------------------------------------------------------------------------------
#      vers.0.2                  par Berka                    rgss.1       
#-------------------------------------------------------------------------------

Url="http://rpgruby.olympe-network.com/berka"
ROOT=Dir.pwd << "/"
Mauvurl="L'url de téléchargement est incorrect"
Deconnect="Pas de connexion internet"

module Net
  UDTF=Win32API.new('urlmon','URLDownloadToFile','lpplp','l')
  IVU=Win32API.new('urlmon','IsValidURL','ppl','l')
  IIO=Win32API.new('url','InetIsOffline','l','l')
  WPPS=Win32API.new('kernel32','WritePrivateProfileString','pppp','l')
  GPPS=Win32API.new('kernel32','GetPrivateProfileString','pppplp','l')
#------------------------------------------------
  module HTTP
    module_function
    def download(url,int)
      print(Deconnect)if Net::IIO.call(0)!=0
      print(Mauvurl)if Net::IVU.call(nil,url,0)!=1
      Graphics.update
      Net::UDTF.call(0,url,int,0,0)==0
    end
  end
#------------------------------------------------ 
  def self.update(version,path)
    return [false,""]if !Net::HTTP.download("#{Url}/#{path}/vers.rgss","#{path}.upd")
    $majfich=File.readlines("#{path}.upd")
    File.delete("#{path}.upd")
    $vers=($majfich).shift.split(':')[-1].to_f
    ok=$vers>version.to_f
    return [ok,ok ? $vers : " "]
  end
#------------------------------------------------ 
  def self.get_version
    GPPS.call("Game","Vers","",v="\0"*16,16,".//Game.ini")
    v.delete!("\0")
    v=="" ? v="0" : v
  end
#------------------------------------------------ 
  def self.set_version
    WPPS.call("Game","Vers",$vers.to_s,".//Game.ini")
  end
#------------------------------------------------ 
  def self.dl
    $err/$majfich.size
  end
#------------------------------------------------ 
  def self.dl_patch(path)
    $err=0
    $majfich.each{|f|f.chomp!
      $err+=1 if Net::HTTP.download("#{Url}/#{path}/"+f,ROOT+f)
    }
    self.set_version
    return $err,$majfich.size
  end
end

Voila pour le script, à coller au dessus de main.
Certaines fonctions ont disparues, comme la progression, mais j'y travaille. La vérification du téléchargement laisse aussi à désirer.

Alors. Comment marche ce script ?

Il y a deux phases:

1) La configuration du serveur FTP
Vous vous connectez sur le serveur, puis vous créez un dossier, il contiendra tous vos projets (et chacun contiendra les versions). Perso, je fais un sous répertoire nommé berka à la racine de mon ftp. C'est disponible ici par protocole http:
Dans ce dossier berka, je vais crée un dossier projet1. il contiendra la mise à jour de mon superbe projet1
Ensuite, dans ce dossier, je vais créer un fichier, nommé vers.rgss. Ce fichier a une structure particulière:
Code:
version:5.1
Data/Actors.rvdata
Data/Animations.rvdata
Data/Areas.rvdata
Data/Armors.rvdata
Data/Classes.rvdata
Graphics/System/Image.png
A la première ligne, c'est le numéro de votre dernière version en ligne. Celle qui sera téléchargée.
Ensuite, viennent les chemins de tous les fichiers téléchargeables. Remarquez que la structure est la meme que celle d'un projet basique. Respectez cette structure pour mettre vos fichiers sur le ftp, faites comme si vous copiez directement le répertoire de votre projet sur le serveur.
Pour servir d'exemple, je vous envoie mon ftp:
http://rpgruby.olympe-network.com/berka/creator/
Enfin, quelques précisions: le système est sensible à la casse: vérifiez les majuscules. Et chmodez tous les fichiers à 755.

Voila pour le serveur.

2) La configuration du projet
Le plus simple est de placer ces quelques commandes juste après le begin du script main.
Il faut tout d'abord vérifier la présence d'une mise à jour en ligne:
Code:
maj_dispo=Net.update(Net.get_version,'projet1')
souvenez-vous ! "projet1" est le nom du sous dossier de tout à l'heure !
Net.get_version récupère la version du projet du joueur.
Net.update évalue les deux versions: joueur/serveur et autorise le téléchargement si la version du serveur est plus récente.
on enferme le tout dans une variable: maj_dispo
elle contiendra un booléen d'autorisation, ainsi que le numéro de la dernière version disponible.
C'est bon, on peu lancer le téléchargement:
Code:
Net.dl_patch('projet1') if maj_dispo[0]
Si l'autorisation est accordée, on va lancer le téléchargement des fichiers de 'projet1'

Voila, votre jeu, après un cours instant sera à jour: vous n'aurez qu'à relancer le jeu, ou appuyer sur F12 pour voir les nouveautés.

3) Détails techniques, pour les amateurs:
Il faut que je thread le tout, pour éviter le blocage du jeu.
Le numéro de version est stocké dans le fichier Game.ini

Et en bonus voici un petit programme ruby qui vous préparera un fichier vers.rgss tout prêt à copier sur votre serveur ftp ! Placez le dans votre projet et lancez le avec ruby:
Code:
require "Win32API"
GPPS=Win32API.new('kernel32','GetPrivateProfileString','pppplp','l')
class String
   def liste_rep(f="")
      f="" if f=="/"
      (Dir.open(self).sort-[".", ".."]).each{|fichier|
         case File.ftype(self+fichier)
         when "directory" then (self+fichier+"/").liste_rep(fichier+"/")
         when "file" then $fichier << f+fichier+"\n" if f !=""
         end
      }
   end
end
$fichier=File.open("vers.rgss","w")
GPPS.call("Game","Vers","",v="\0"*16,16,".//Game.ini")
$fichier << "version:#{v.delete!("\0")}\n"
"./".liste_rep
$fichier.close

J'espère que ce script vous sera utile, et je suis ouvert à toute question,

berka
Berka
Berka
Staffeux retraité

Nombre de messages : 1832
Age : 33
Localisation : Paris
Distinction : rubyste déglingué
9ème dan en scripting-no-jutsu

Nouveau Justine Beber ;P
Date d'inscription : 16/12/2007
http://rpgruby.olympe-network.com

[résolu (enfin si je retombe pas en mode boulet)]Updater Empty Re: [résolu (enfin si je retombe pas en mode boulet)]Updater

Sam 17 Avr 2010 - 2:49
Si ça marche... pourquoi ai-je besoin de reprendre ce projet ? Wink

Tiens... ce soir encore j'ai oublié de dormir... [/hs]
Contenu sponsorisé

[résolu (enfin si je retombe pas en mode boulet)]Updater Empty Re: [résolu (enfin si je retombe pas en mode boulet)]Updater

Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum