| [VX] Telecharger des fichiers | |
|
|
Auteur | Message |
---|
Maire Lv.9
Age : 34 Inscrit le : 15/10/2008 Messages : 351
| Sujet: [VX] Telecharger des fichiers Dim 22 Mar 2009 - 21:32 | |
| Bonsoir à tous ! Après un Week End de dur labeur, je suis arrivé a permettre le transfert de fichiers avec rmvx. Je peux dire que le résultat est vraiment satisfaisant: - Aucun fichier externe, tout est fait en APIs - Très bonne vitesse de transfert. J'ai fait une interface ftp et une http. Je pense que ce script intéressera du monde au niveau des patches, mises a jour. Je mettrai de nouvelles fonctions prochainement: verification de fichiers sur ftp... Attention: si vous utilisez un serveur ftp, vous devez renseigner vos identifiants dans le script. Sachez qu'en cas de piratage de votre projet, le ftp devient parfaitement accessible: donc ne mettez rien d'important et de confidentiel sur votre ftp ! Ce script est a coller au dessus de main: - Code:
-
#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # Download & Upload Files with RGSS # par berka v 2.1 rgss 2 # www.rpgmakervx-fr.com #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # ! Ne pas utiliser de serveur ftp contenant ds données perso et confidentielles # ! ce script possède vos identifiants ftp: un crack du projet les rend publics #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # Ftp : # ▼ Recevoir : # Net::Ftp.download("dos_sur_ftp/fichier.zip","./Graphics") # ▼ Envoyer : # Net::Ftp.upload("./Graphics/fichier.zip","/dos_sur_ftp/fichier.zip") # ▼ Créer un répertoire distant : # Net::Ftp.mkdir("/dos_sur_ftp") # Http : # ▼ recevoir : # Net::Http.download("url","./Graphics") # ▼ total octets téléchargés : # Net::HTTP.transfered # ▼ Taille du fichier : # Net::HTTP.size("test.zip") # ▼ % de progression : # Net::HTTP.progress("test.zip") # ▼ temps de transfert individuel: # Net::HTTP.temps("test.zip") # ▼ fichiers à télécharger : # Net::HTTP.transfers # ▼ fichier téléchargé ? : # Net::HTTP.loaded?("test.zip") #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- module Berka module NetError ErrConIn="Impossible de se connecter à Internet" ErrConFtp="Impossible de se connecter au Ftp" ErrConHttp="Impossible de se connecter au Serveur" ErrNoFFtpIn="Le fichier à recevoir n'existe pas" ErrNoFFtpEx="Le fichier à envoyer n'existe pas" ErrTranHttp="Le téléchargement Http a échoué" ErrDownFtp="Le téléchargement Ftp a échoué" ErrUpFtp="L'envoi Ftp a échoué" ErrNoFile="Aucun fichier à télécharger" ErrMkdir="Impossible de créer le répertoire distant"
HTTPSync=false # si true, (pas recommandé) privilégie le jeu au telechargement
end end
include Berka::NetError module Net W='wininet' SPC=Win32API.new('kernel32','SetPriorityClass','pi','i').call(-1,128) IOA=Win32API.new(W,'InternetOpenA','plppl','l').call('',0,'','',0) IC=Win32API.new(W,'InternetConnectA','lplpplll','l') print(ErrConIn)if IOA==0 module FTP FSCD=Win32API.new(W,'FtpSetCurrentDirectoryA','lp','l') FGF=Win32API.new(W,'FtpGetFileA','lppllll','l') FPF=Win32API.new(W,'FtpPutFile','lppll','l') FCD=Win32API.new(W,'FtpCreateDirectoryA','lp','l') module_function def init #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-# ftp="ftp.server.com" # port=21 # Modify ! identifiant="user" # motdepasse="password" # #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-# @fb=IC.call(IOA,ftp,port,identifiant,motdepasse,1,0,0) ftp,port,identifiant,motdepasse=[nil]*4 # clear ftp ids ! (print(ErrConFtp))if @fb==0 end def download(ext,int='./') init if @fb.nil? c=ext.split('/').pop if FSCD.call(@fb,ext.gsub(c,''))!=0 print(ErrDownFtp)if FGF.call(@fb,c,"#{int}/#{c}",0,32,2,0)==0 else print(ErrNoFFtpIn) end end def mkdir(rep) init if @fb.nil? print(ErrMkdir)if FCD.call(@fb,rep)==0 end def upload(int,ext) init if @fb.nil? if FSCD.call(@fb,ext)&&File.exist?(int) print(ErrUpFtp)if FPF.call(@fb,int,ext,2,0)==0 else print(ErrNoFFtpEx) end end end #-=-=-=-=-=-=-=-=-=-=-=-=-=-=- module HTTP IOU=Win32API.new(W,'InternetOpenUrl','lppllp','l') IRF=Win32API.new(W,'InternetReadFile','lpip','l') ICH=Win32API.new(W,'InternetCloseHandle','l','l') HQI=Win32API.new(W,'HttpQueryInfo','llppp','i') module_function def sizeloaded(i='');@read[i];end def transfered;@dloaded;end def transfers;@dls;end def progress(i='');(@read[i].to_f/@size[i]*100);end def loaded?(i='');@read[i]>=@size[i]rescue nil;end def temps(i='');@tps[i]if loaded?(i);end def size(i='');@size[i];end def download(url,int='./') @dloaded||=0;@dls||={};@i||=-1;@size||={};@read||={};@tps={} a=url.split('/');serv,root,fich=a[2],a[3..a.size].join('/'),a[-1] print(ErrNoFile)if fich.nil? @dls[fich]=Thread.start(url,int){|url,int|txt='';t=Time.now ErrConHttp if(e=IC.call(IOA,serv,80,'','',3,1,0))==0 f=IOU.call(IOA,url,nil,0,0,0) HQI.call(f,5,k="\0"*1024,[k.size-1].pack('l'),nil) @read[fich],@size[fich]=0,k.delete!("\0").to_i loop do buf,n=' '*1024,0 r=IRF.call(f,buf,1024,o=[n].pack('i!')) n=o.unpack('i!')[0] break if r&&n==0 txt<<buf[0,n] @read[fich]=txt.size sleep(0.001)if HTTPSync end (File.open(int+fich,'wb')<<txt).close @dloaded+=@read[fich] ICH.call(f);sleep(0.01) @tps[fich]=Time.now-t} end end end
la démo:c'est ici en anglais... J'ai eu la flemme de la retraduire ^^ voila, les indications se trouvent au début du script, et je suis trop fatigué pour les recopier. Ah, oui, je recherche des neurones, si vous en avez, mp moi ! berka
Dernière édition par berka le Sam 28 Mar 2009 - 10:11, édité 3 fois |
|
| |
Illusionniste Lv.12
Age : 34 Inscrit le : 27/12/2008 Messages : 757
| Sujet: Re: [VX] Telecharger des fichiers Dim 22 Mar 2009 - 21:46 | |
| Salut Berka je ne vois pas a quoi sert ce script |
|
| |
Maire Lv.9
Age : 34 Inscrit le : 15/10/2008 Messages : 351
| Sujet: Re: [VX] Telecharger des fichiers Dim 22 Mar 2009 - 21:50 | |
| Ouuiiiin... 'Oeuvre de tant de jours en un jour effacée' (Corneille)
Il sert a telecharger automatiquement des fichiers sur internet et a les placer dans le projet !
berka |
|
| |
Illusionniste Lv.12
Age : 34 Inscrit le : 27/12/2008 Messages : 757
| Sujet: Re: [VX] Telecharger des fichiers Dim 22 Mar 2009 - 21:57 | |
| ok merci ça serait utile a plus d'un dont moi |
|
| |
Va-nu-pieds Lv.4
Age : 34 Inscrit le : 01/09/2008 Messages : 72
| Sujet: Re: [VX] Telecharger des fichiers Lun 23 Mar 2009 - 8:51 | |
| Vraiment énorme merci *_*. Par contre faut préciser une chose le nom des modules et sensible a la casse, avec Net::Http sa ne fonctionne pas il faut faire Net::HTTP etc.. J'ai remarqué un truc bizarre aussi j'ai envoyé un fichier texte sur un ftp avec seulement marqué 0.1, lorsque le fichier le télécharge avec le script et le jeu j'obtiens 0.1 nul nul nul etc... (ce que m'affiche mon éditeur de texte Scite) et donc la lecture est faussée et je n'arrive pas a exploiter les données. En le téléchargeant avec mon navigateur j'obtiens bien 0.1. Screen avant et après : J'ai fais un autre essai en téléchargeant une image en gif, l'image obtenue est illisible. Edit : Je remarque que le fichier obtenue à un poids inférieur à celui initial, est-ce du alors à un problème lors du transfert ?
Dernière édition par Ojiro le Lun 23 Mar 2009 - 9:21, édité 3 fois |
|
| |
Templier Lv.15
Age : 30 Inscrit le : 29/11/2008 Messages : 1272
| Sujet: Re: [VX] Telecharger des fichiers Lun 23 Mar 2009 - 9:06 | |
| Moi je ne comprends pas tout à fait à comment s'en servir et quelles sont ses limites ? Peut-on ajouter un jeu VX téléchargé sur internet sur notre jeu grace à ce script?Peut-on faire apparaitre un fichier texte tel quel avec les word art et tout ? |
|
| |
Maire Lv.9
Age : 34 Inscrit le : 15/10/2008 Messages : 351
| Sujet: Re: [VX] Telecharger des fichiers Lun 23 Mar 2009 - 21:01 | |
| Les limites ? de tres gros fichiers qui prennent trop de temps a telecharger... L'utilité ? Si tu mets un rgssad du meme nom que celui du jeu publié sur ton ftp, il sera telechargé, donc mis a jour automatiquement au lancement du jeu !
berka
ps: Ojiro ce sont des caracteres vides, donc ils ne servent a rien et n'influent pas sur le fonctionnement du fichier ! |
|
| |
Ex-Admin Cruelle
Age : 32 Inscrit le : 03/07/2008 Messages : 2441
| Sujet: Re: [VX] Telecharger des fichiers Mar 24 Mar 2009 - 5:37 | |
| Ohhh merci berka <3 Franchement c'est génial ! Je l'attendait avec impatience :p Encore merci ! |
|
| |
Va-nu-pieds Lv.4
Age : 34 Inscrit le : 01/09/2008 Messages : 72
| Sujet: Re: [VX] Telecharger des fichiers Mar 24 Mar 2009 - 9:41 | |
| - Citation :
- ps: Ojiro ce sont des caracteres vides, donc ils ne servent a rien et n'influent pas sur le fonctionnement du fichier !
Pourtant lorsque je fais par exemple - Citation :
GameVersion = 0.1 fichier = File.open("update.txt", "r") fichier = fichier.read if fichier == GameVersion ....etc else .... end
Sa ne vérifie pas la condition alors qu'en vérifiant avec un Print GameVersion et Print fichier j'obtiens bien 0.1 pour les deux, j'ai beau essayé de vérifier si c'est pas une erreur dans le type de variable string ou quoi que se soit mais non sa reste différent. Donc je comprends pas, je m'y prends peut-être mal ? Je manipules rarement les fichiers externes. |
|
| |
Maire Lv.9
Age : 34 Inscrit le : 15/10/2008 Messages : 351
| Sujet: Re: [VX] Telecharger des fichiers Mar 24 Mar 2009 - 17:11 | |
| il faut que tu ouvres ton fichier en lecture bit/bit: "rb" Les caractères spéciaux seront interprétés, [nil] sera considéré. - Code:
-
GameVersion = 0.1 fichier = File.open("update.txt", "rb") fichier = fichier.read if fichier == GameVersion ....etc else .... end et tu devrais creer une autre variable que fichier, pour eviter les conflits: - Code:
-
GameVersion = 0.1 fichier = File.open("update.txt", "rb") contenu = fichier.read if contenu == GameVersion ....etc else .... end Ensuite, il y a un autre pb: GameVersion est un nombre de type float, contenu est un tableau... donc toute comparaison est fausse. Il faut que tu selectionnes la ligne comportant le num de version disons contenu[0] et que tu la convertisses en float: contenu[0].to_f voila ! berka |
|
| |
Maire Lv.9
Age : 34 Inscrit le : 15/10/2008 Messages : 351
| Sujet: Re: [VX] Telecharger des fichiers Ven 27 Mar 2009 - 14:57 | |
| |
|
| |
Ex-Admin Cruelle
Age : 32 Inscrit le : 03/07/2008 Messages : 2441
| Sujet: Re: [VX] Telecharger des fichiers Ven 27 Mar 2009 - 16:50 | |
| Haan double post ! Pas bien berka xD Sinon <3 la nouvelle version franchement du bon boulot, comme d'ab' ! Y'aurais moyen de rajouter une fonction pour copier les fichier d'un réseau Hamachi ? En gros j'aimerais copier des fichier du PC a stel' sur mon pc et vice versa ça serait possible ? |
|
| |
Maire Lv.9
Age : 34 Inscrit le : 15/10/2008 Messages : 351
| Sujet: Re: [VX] Telecharger des fichiers Ven 27 Mar 2009 - 17:43 | |
| ouais mais y'a 3 jours entre les deux posts ^^ Je me documente un peu sur le réseau Hamachi et je vois si je peux le faire... d'apres ce que je sais, c'est du p2p... donc ca va etre galere. berka |
|
| |
Ex-Admin Cruelle
Age : 32 Inscrit le : 03/07/2008 Messages : 2441
| Sujet: Re: [VX] Telecharger des fichiers Ven 27 Mar 2009 - 19:28 | |
| Ouais en fait c'est un résau local en gros. J'utilise déjà un programme en batch, en fait il suffirait de pouvoir juste copier des fichier tout simplement ^^ Avec fichier de destination + fichier d'arrivée ^^ |
|
| |
Vagabond Lv.5
Inscrit le : 14/05/2008 Messages : 86
| Sujet: Re: [VX] Telecharger des fichiers Mar 26 Mai 2009 - 17:01 | |
| Si je peux placer mon grain de sel, ce script me pose beaucoup de problemes :$
Quand je met mon script, je sais pas si mon jeu est devenu 2x plus lent à réagir aux touches ou si tout simplement ça a déréglé un script, mais quand je veux déplacer le personnage, il y a 5 secondes de reaction, ou alors il réagit tout de suite mais fait 3 pas de plus...
C'est dommage parce que ce script m'aurait grave interessé :/ |
|
| |
Templier Lv.15
Age : 33 Inscrit le : 19/07/2008 Messages : 1317
| Sujet: Re: [VX] Telecharger des fichiers Mar 26 Mai 2009 - 17:12 | |
| Yao
Te faut un script anti-lag ^^ |
|
| |
Habitant Lv.6
Avertissements : Banni ! Inscrit le : 02/01/2009 Messages : 138
| Sujet: Re: [VX] Telecharger des fichiers Jeu 4 Juin 2009 - 21:25 | |
| je vais parretre d'une peanuts mais.... comment y marche? |
|
| |
Templier Lv.15
Age : 33 Inscrit le : 19/07/2008 Messages : 1317
| Sujet: Re: [VX] Telecharger des fichiers Ven 5 Juin 2009 - 10:09 | |
| Euh
C'est quoi la différence entre FTP et HTTP ? |
|
| |
Invité
| Sujet: Re: [VX] Telecharger des fichiers Ven 5 Juin 2009 - 10:33 | |
| FTP sert à envoyer des fichiers vers un serveur (en gros, c'est quand on "met en ligne" un site web par exemple) et à les récupérer : c'est un protocole qui n'est dédié qu'au transfert de fichiers
HTTP est un protocole de discussion entre un client et un serveur qui sert aux transferts de données, par exemple du contenu d'une page web mais aussi de façon plus limité à l'envoi d'un mot de passe. L'envoi de fichier en tant que tel n'est pas possible en HTTP (même si on peut envoyer les données d'un fichier, et ensuite utiliser des scripts coté serveur pour re-transformer ça en un fichier).
En gros, FTP c'est pour envoyer des fichiers, HTTP c'est pour envoyer des informations. |
|
| |
Templier Lv.15
Age : 33 Inscrit le : 19/07/2008 Messages : 1317
| Sujet: Re: [VX] Telecharger des fichiers Ven 5 Juin 2009 - 10:37 | |
| |
|
| |
Habitant Lv.6
Age : 28 Inscrit le : 06/05/2009 Messages : 121
| Sujet: Re: [VX] Telecharger des fichiers Ven 4 Sep 2009 - 17:25 | |
| Et comment on met des fichiers et quel appel de script il faut utiliser ? |
|
| |
Maire Lv.9
Age : 34 Inscrit le : 15/10/2008 Messages : 351
| Sujet: Re: [VX] Telecharger des fichiers Ven 4 Sep 2009 - 17:35 | |
| Tu as lu le script ? |
|
| |
Habitant Lv.6
Age : 28 Inscrit le : 06/05/2009 Messages : 121
| Sujet: Re: [VX] Telecharger des fichiers Ven 4 Sep 2009 - 17:39 | |
| Oui, il n'y a rien qui parle de ça... |
|
| |
Ex-Admin Cruelle
Age : 32 Inscrit le : 03/07/2008 Messages : 2441
| Sujet: Re: [VX] Telecharger des fichiers Ven 4 Sep 2009 - 17:51 | |
| - Code:
-
#-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # Download & Upload Files with RGSS # par berka v 2.1 rgss 2 # www.rpgmakervx-fr.com #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # ! Ne pas utiliser de serveur ftp contenant ds données perso et confidentielles # ! ce script possède vos identifiants ftp: un crack du projet les rend publics #-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- # Ftp : # ▼ Recevoir : # Net::Ftp.download("dos_sur_ftp/fichier.zip","./Graphics") # ▼ Envoyer : # Net::Ftp.upload("./Graphics/fichier.zip","/dos_sur_ftp/fichier.zip") # ▼ Créer un répertoire distant : # Net::Ftp.mkdir("/dos_sur_ftp") # Http : # ▼ recevoir : # Net::Http.download("url","./Graphics") # ▼ total octets téléchargés : # Net::HTTP.transfered # ▼ Taille du fichier : # Net::HTTP.size("test.zip") # ▼ % de progression : # Net::HTTP.progress("test.zip") # ▼ temps de transfert individuel: # Net::HTTP.temps("test.zip") # ▼ fichiers à télécharger : # Net::HTTP.transfers # ▼ fichier téléchargé ? : # Net::HTTP.loaded?("test.zip") Y'a tout ce qui faut savoir la... |
|
| |
Habitant Lv.6
Age : 28 Inscrit le : 06/05/2009 Messages : 121
| Sujet: Re: [VX] Telecharger des fichiers Sam 5 Sep 2009 - 8:37 | |
| Je vais paraître idiot mais j'ai rien compris... |
|
| |
| Sujet: Re: [VX] Telecharger des fichiers | |
| |
|
| |
| [VX] Telecharger des fichiers | |
|