chaipokoi
Messages : 438
| Sujet: script d'echange de données par fichier (lecture et écriture) Sam 2 Oct - 11:47 | |
| Salut à tous ,pour les besoins de mon projet en cours,je devais pouvoir retirer des objets de la base de données de mon jeu pour les placer dans un fichier autre. (ici ".monsterdat")ce script remplis parfaitement cette fonctionje vous propose alors ce script ici. pour le moment un seul objet peut être placer dans le fichier. petit aperçu: - Spoiler:
lorsque le fichier est vide.
- Spoiler:
placement d'un objet dans le fichier
code: - Spoiler:
- Code:
-
#============================================================================== # ■ Scene_echange #par chaipokoi #inclu:Window_Item de bodom-child et rabbi #------------------------------------------------------------------------------ #Le script qui suit permet d'extraire un objet du jeu pour l'inclure dans un #fichier ".monsterdat"(extension modifiable).le fichier ".monsterdat" pouvant #être envoyer par e-mail.(un script d'envoi interne au jeu est a venir).
#IMPORTANT!!!!!!!!!!!!!!!!!!!! #pour intégrer ce script au jeu, dans un pnj inserez la commande #"insérer un script" puis copiez dans le fentre qui s'affiche: #"$scene=Scene_ecricolis.new"
#============================================================================== class Scene_ecricolis #_______________________________________________________________________________ #initialisation et boucle def main
@item_window=Window_Item.new
#------------------------------------------------------------------------------- #modifiez la valeur de la variable ci-dessous pour modifier le texte qui s'affiche #pendant la séléction. $texte="choisissez l'objet a placer dans le colis" #------------------------------------------------------------------------------- @txt=Window_txt.new Graphics.transition loop do Graphics.update Input.update @item_window.update update_item if $scene != self break end end Graphics.freeze @item_window.dispose @txt.dispose end #fin de l'initialisation et de la boucle #_______________________________________________________________________________
#_______________________________________________________________________________ #vérification des touche et réaction en fonction de la pression de celles-ci. def update_item if Input.trigger?(Input::B) $game_system.se_play($data_system.cancel_se) $scene = Scene_Map.new return end if Input.trigger?(Input::C) # 使用できない場合 @itemname = @item_window.item @item=@item_window.item.id $contenu=@item #------------------------------------------------------------------------------ #retire l'objet séléctionné du jeu.vous pouvez supprimmer cette ligne pour #ne pas le retirer,ainsi l'objet sera copier dans le fichier mais pas retirer de #la base de donné du jeu. $game_party.lose_item(@itemname.id, 1) #------------------------------------------------------------------------------ @item_window.draw_item(@item_window.index) write end end #vérification des touche et réaction en fonction de la pression de celles-ci. #_______________________________________________________________________________
#_______________________________________________________________________________ #écriture des données dans le fichier ".monsterdat" def write #------------------------------------------------------------------------------- #vous pouvez modifier le texte entre guillemet ci-dessous pour modifier le nom #et L'EXTENSION du fichier. nom_fichier = 'guilde/objet.courrierdat' #------------------------------------------------------------------------------- File.open(nom_fichier, "w") do |ecrire| ecrire.write $contenu end end #fin de l'écriture des données dans le fichier ".monsterdat" #_______________________________________________________________________________
end #===============================================================================
#============================================================================== # ■ Window_txt #par chaipokoi #------------------------------------------------------------------------------ #Le script qui suit permet d'afficher un message pendant la séléction de l'objet. #============================================================================== class Window_txt<Window_Base def initialize super(640-480,0, 640, 65) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.name = $fontface self.contents.font.size = 20 refresh end def refresh
self.contents.clear self.contents.draw_text(0,0,200,50,$texte) end end
#============================================================================== # ■ Scene_lecture #par chaipokoi #inclu:Window_txt de chaipokoi #------------------------------------------------------------------------------ #Le script qui suit permet lire un fichier écrit avec la fonction Scene_ecricolis #de chaipokoi
#IMPORTANT!!!!!!!!!!!!!!!!!!!! #pour intégrer ce script au jeu, dans un pnj inserez la commande #"insérer un script" puis copiez dans le fentre qui s'affiche: #"$scene=Scene_lectcolis.new"
#==============================================================================
class Scene_lectcolis def main ouverture end#fin de main def ouverture#ouverture du fi #------------------------------------------------------------------------------- #changez la valeur de la variable ci dessous pour indiquer l'emplacement du #fichier à lire. $fichiername="guilde/objet.courrierdat" #-------------------------------------------------------------------------------
file = File.open($fichiername, "r") $fichier=file $fichier = $fichier.read analyse end#fin de l'ouverture du fichier
def analyse#analyse du contenu du fichier @objet=$fichier
#------------------------------------------------------------------------------- #changez la valeur de la variable ci dessous pour changer le message qui s'aff #ichera à l'écran si un objet a été placé dans le fichier. $texte="l'objet a été placé dans le sac." #-------------------------------------------------------------------------------
if $fichier=="vide" $texte="vous n'avez pas de nouveau colis." boucle end ajout end#fin de l'analyse du contenu
def ajout#effacement du contenu du fichier+ouverture du message+ajout de l'objet $game_party.gain_item(@objet, 1) File.open($fichiername, "w") do |ecrire| ecrire.write "vide" end
boucle end#fin de ajout
def boucle
@txt=Window_txt.new @txt.x=640/2-200 @txt.y=480/2-65 Graphics.transition loop do #boucle Graphics.update Input.update input if $scene != self break end end Graphics.freeze @txt.dispose
end#fin de boucle
def input if Input.trigger?(Input::C) or Input.trigger?(Input::B) $scene=Scene_Map.new end end
end#fin de la scene
Dernière édition par chaipokoi le Mer 6 Oct - 16:01, édité 3 fois | |
|
TinlenvaL
Messages : 233
| Sujet: Re: script d'echange de données par fichier (lecture et écriture) Sam 2 Oct - 15:32 | |
| Ca a l'air pas mal !! Mais j'ai pas envie de tester x) (parce que je suis sur l'ordi de mon frère et il n'a pas RMXP | |
|
chaipokoi
Messages : 438
| Sujet: Re: script d'echange de données par fichier (lecture et écriture) Lun 4 Oct - 18:54 | |
| hop et voilà la mise à jour a été effectuée,le script ne bug plus lorsque on reste trop longtemps si le message d'erreur et la lecture et fiable a 100%. | |
|
Contenu sponsorisé
| Sujet: Re: script d'echange de données par fichier (lecture et écriture) | |
| |
|