- Azuma-01Membre
- Nombre de messages : 94
Age : 31
Localisation : Amos
Distinction : aucune
Date d'inscription : 22/09/2009
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<==.
C'est par ==>ICI<==.
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 ?
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
As-tu essayé d'utiliser ce script pour rmxp avec ton jeu rmvx ?
Parce que je me souviens qu'il était polyvalent
Re: [résolu (enfin si je retombe pas en mode boulet)]Updater
Ven 16 Avr 2010 - 19:36
Ok... désolé !
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:
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:
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:
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:
J'espère que ce script vous sera utile, et je suis ouvert à toute question,
berka
- 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
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')
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]
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
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 ?
Tiens... ce soir encore j'ai oublié de dormir... [/hs]
Tiens... ce soir encore j'ai oublié de dormir... [/hs]
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|