Seigneur Lv.18
Age : 29 Avertissements : 3 Inscrit le : 20/12/2008 Messages : 2292
| Sujet: [Résolu]PB ~ script Pop-up de Blockade Dim 13 Juin 2010 - 9:33 | |
| Salut à tous ^^ J'ai encore un problème avec le script de Blockade : Je souhaite effectuer un gain multiples à la fin d'une quête. Voilà l'appel de script : gain([5,4], [0,0] , [30,50] , 2) Cependant, un bug survient : La ligne correspondante : - Code:
-
actor.change_exp(actor.exp + @num[i],Config_Contenu::Afficher_level_up) Le "bloc" dont la ligne appartient : - Spoiler:
- Code:
-
#-------------------------------------------------------------------------- # * Donne le butin gagné #-------------------------------------------------------------------------- def donner_butin if @gain_multiples for i in 0...@type.size case @type[i] when 1 $game_party.gain_item($data_items[@index[i]], @num[i]) when 2 $game_party.gain_item($data_weapons[@index[i]], @num[i]) when 3 $game_party.gain_item($data_armors[@index[i]], @num[i]) when 4 $game_party.gain_gold(@num) when 5 if @index == 0 $game_party.members.each{|member| member.change_exp(member.exp + @num[i],Config_Contenu::Afficher_level_up) } else actor = $game_actors[@index[i]] actor.change_exp(actor.exp + @num[i],Config_Contenu::Afficher_level_up) end end end else case @type when 1 $game_party.gain_item($data_items[@index], @num) when 2 $game_party.gain_item($data_weapons[@index], @num) when 3 $game_party.gain_item($data_armors[@index], @num) when 4 $game_party.gain_gold(@num) when 5 if @index == 0 $game_party.members.each{|member| member.change_exp(member.exp + @num,Config_Contenu::Afficher_level_up) } else actor = $game_actors[@index] actor.change_exp(actor.exp + @num,Config_Contenu::Afficher_level_up) end end end end
Voilà, si quelqu'un pouvait m'aider, ce serait vraiment sympa ^^ PS : En changeant un peu l'appel de script, et en assignant l'XP à un membre spécial, il me renvoie à un nouveau bug, sur un autre script °.° -> Game_Party.
Dernière édition par Zodiak le Dim 20 Juin 2010 - 12:11, édité 1 fois |
|
Maître des Duels
Age : 32 Inscrit le : 29/07/2009 Messages : 7841
| Sujet: Re: [Résolu]PB ~ script Pop-up de Blockade Dim 13 Juin 2010 - 9:58 | |
| Essaye de faire la même chose mais dans un projet vierge en ajoutant que ce script. |
|
Seigneur Lv.18
Age : 29 Avertissements : 3 Inscrit le : 20/12/2008 Messages : 2292
| Sujet: Re: [Résolu]PB ~ script Pop-up de Blockade Dim 20 Juin 2010 - 10:13 | |
| Même problème.
---- UP Les problèmes sont vites enterrés, alors je me permets un p'tit up. Merci d'avance |
|
Ex-Admin Cruelle
Age : 32 Inscrit le : 03/07/2008 Messages : 2441
| Sujet: Re: [Résolu]PB ~ script Pop-up de Blockade Dim 20 Juin 2010 - 10:30 | |
| Fais nous une démo du bug =) |
|
Seigneur Lv.18
Age : 29 Avertissements : 3 Inscrit le : 20/12/2008 Messages : 2292
| Sujet: Re: [Résolu]PB ~ script Pop-up de Blockade Dim 20 Juin 2010 - 10:58 | |
| La voici : http://www.megaupload.com/?d=90T9S8AT |
|
Ex-Admin Cruelle
Age : 32 Inscrit le : 03/07/2008 Messages : 2441
| Sujet: Re: [Résolu]PB ~ script Pop-up de Blockade Dim 20 Juin 2010 - 11:52 | |
| Voila ! - Code:
-
#=============================================================== # ° [VX] Afficher les objets trouvés/reçu sur la map #------------------------------------------------------------------ # ° Par Blockade # ° http://rpg-maker-vx.bbactif.com/forum.htm # ° Crée le 12/04/10 # ° Version 1.2 # ° Remerciment à Khai ( http://ktbanh.wordpress.com/) # _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ # ° Notes de version : # ~ v 1.0 # - Sortie du script # ~ v 1.1 # - Permet de gagner de l'expérience # ~ v 1.2 # - Correction de plusieurs bugs # _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ # ° Fonctionnalités (v 1.1) # - Affiche une fenêtre avec les objets obtenu # - Gestion des gains multiples # - Adaptable en fonction des situations # - Possibilité de gagner de l'expérience # _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ # ° Installation : # Insérez le script au dessus de main & jetez un coup d'œil au module de # configuration # _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ # ° Utilisation # >> Dans le cas d'un butin simple (1 seul objet) # Dans l'event, selectioner "Appel de script", et mettre : # gain(type,index,num,lieu) # Type = Le type de l'objet (1 : Objets / 2 : Armes / 3 : Armures / 4 : Gils / 5 : Exp) # Index = L'ID de l'objet obtenu (0 en cas de gils) /!\ Il faut mettre un 0 ou un autre chiffre, en cas de gils, # et ne sourtout pas mettre gain(4,123) ou gain(4,123,1) # les arguments num (et lieu) seraient décalé et le script # ne comprendrais pas. # /!\ Pour le gain d'expérience, mettez l'ID de votre héros, ou 0 pour toute l'équipe # Num = La quantité d'objets/gils reçus # # /!\ Lieu est facultatif, pour les données affiché par défaut voir le module de configuration # Lieu = Le lieu d'où le script est appelé. Il peut s'agir de différentes situation, si il est appelé d'un # coffre par exemple, le texte d'intitulé changera en "Butin trouvé", si un PNJ les donnes alors il # affichera "Butin reçu". Les textes et son sont changeables dans le module de configuration. # Par défaut on trouve : # - Rien : Texte par défaut # - 1 : Coffre # - 2 : PNJ # - 3 : Autres # /!\ Ce sont les utilisation par défaut, vous pouvez très bien modifier ! Il suffit de modifier # dans le module de configuration les valeurs des textes et sons ! # => Pour ceux qui s'y connaissent un peu en script, il peuvent rajouter des options, cherchez la méthode : # def set_text(lieu) (~ ligne 273) et modifiez le case comme ceci : # case lieu #~ when 0 # Par défaut #~ title = "Butin" #~ Audio.se_play("Audio/SE/#{Config_Contenu::SE_defaut}", Config_Contenu::Volume_defaut, Config_Contenu::Tempo_defaut) if Config_Contenu::Musique_defaut #~ when 1 # Coffre #~ title = Config_Contenu::Text_coffre #~ Audio.se_play("Audio/SE/#{Config_Contenu::SE_coffre}", Config_Contenu::Volume_coffre, Config_Contenu::Tempo_coffre) if Config_Contenu::Musique_coffre #~ when 2 # PNJ #~ title = Config_Contenu::Text_pnj #~ Audio.se_play("Audio/SE/#{Config_Contenu::SE_pnj}", Config_Contenu::Volume_pnj, Config_Contenu::Tempo_pnj) if Config_Contenu::Musique_pnj #~ when 3 # Recu (Autres coffre/PNJ) #~ title = Config_Contenu::Text_autre #~ Audio.se_play("Audio/SE/#{Config_Contenu::SE_autre}",Config_Contenu::Volume_autres, Config_Contenu::Tempo_autres) if Config_Contenu::Musique_coffre #~ when x # title = "Votre texte" # Audio.se_play("Audio/SE/nom_de_votre_se",volume_du_se, tempo_du_se) # end # => Ou x est le nombre pour appeler votre option, et nom_de_votre_se & volume_du_se & tempo_du_se sont explicites # # Exemple : gain(1,5,7,2) va donner l'objet (1) Ether (qui a pour ID 5) en 7 exemplaire avec l'option 1 (Coffre, par défaut) # # >> Dans le cas d'un butin multiples (> 1 seul objet) # Ce sont exactement les même réglages sauf que si vous voulez donner un ether x6 et une massue x1 avec option PNJ # gain([1,2], [5,1] , [6,1] , 2) # type index num lieu # C'est le même fonctionement sauf sous forme de tableau ! # /!\ Attention il ne peut pas avoir plusieurs options de lieu. # _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
#=============================================================== # Début de la configuration module Config_Contenu #------------------------------------------ # >> Configuration des textes #------------------------------------------ Text_gain_gold = "Gils obtenus" # Texte affiché avant la quantité d'argent obtenu Text_quantite = "x" # Texte situé avant la quantité d'objet gagné Text_gain_exp = "Exp. obtenue" # Texte affiché avant la quantité d'argent obtenu Afficher_level_up = true # Afficher les nouveau sorts si le héros gagne un niveau
#------------------------------------------ # >> Configuration des graphiques #------------------------------------------ Update_spiriteset = true # Continuer à faire bouger les autotitles lors de l'apparition de la fenêtre (L'eau par exemple) Update_event = false # Continuer à exécuter les events
#------------------------------------------ # >> Configuration des icones #------------------------------------------ Icone_argent = 138 # L'ID de l'icône affichée pour l'argent Icone_exp = 101 # L'ID de l'icône affichée pour l'expérience
#------------------------------------------ # >> Configuration du titre affiché #------------------------------------------ # > Par défaut Text_defaut = "Butin" # Texte affiché par défaut lors de l'obtention d'un butin Musique_defaut = true # Jouer le SE ? (par défaut) SE_defaut = "Saint5" # Le SE joué par défaut lors de l'obtention d'un butin Volume_defaut = 100 # Le volume du SE joué par défaut Tempo_defaut = 100 # Le tempo du SE joué par défaut
# > Un coffre (Lieu = 1) Text_coffre = "Butin trouvé" # Texte affiché lors de l'obtention d'un butin (Lieu = 1) Musique_coffre = true # Jouer le SE ? (Lieu = 1) SE_coffre = "Chest" # Le SE joué lors de l'obtention d'un butin (Lieu = 1) Volume_coffre= 100 # Le volume du SE joué (Lieu = 1) Tempo_coffre = 100 # Le tempo du SE joué (Lieu = 1)
# > Un PNJ (Lieu = 2) Text_pnj = "Butin reçu" # Texte affiché lors de l'obtention d'un butin (Lieu = 2) Musique_pnj = true # Jouer le SE ? (Lieu = 2) SE_pnj = "Saint5" # Le SE joué lors de l'obtention d'un butin (Lieu = 2) Volume_pnj = 100 # Le volume du SE joué (Lieu = 2) Tempo_pnj = 100 # Le tempo du SE joué (Lieu = 2 )
# > Autres (Objet caché...) (Lieu = 3) Text_autre = "Butin trouvé" # Texte affiché lors de l'obtention d'un butin (Lieu = 3) Musique_autre = true # Jouer le SE ? (Lieu = 3) SE_autre = "Saint5" # Le SE joué lors de l'obtention d'un butin (Lieu = 3) Volume_autre = 100 # Le volume du SE joué (Lieu = 3) Tempo_autre = 100 # Le tempo du SE joué (Lieu = 3)
end # Fin de la configuration #===============================================================
#-------------------------------------------------------------------------- # * Méthode qui appelle la scene # type : 1 : Objets / 2 : Armes / 3 : Armures / 4 : Gils # index : L'ID de l'objet obtenu (0 en cas de gils) # num : Le nombre d'objets/gils obtenus # lieu : texte de description (facultatif) #-------------------------------------------------------------------------- def gain(type,index,num,lieu=0) $scene = Scene_Contenu.new(type,index,num,lieu) end
#============================================================================== # ** Scene_Contenu #------------------------------------------------------------------------------ # La classe qui gère les fenêtres de contenu de coffre #============================================================================== class Scene_Contenu < Scene_Base #-------------------------------------------------------------------------- # * Initialize #-------------------------------------------------------------------------- def initialize(type,index,num,lieu) @type = type ; @index = index @num = num ; @lieu = lieu @spriteset = Spriteset_Map.new @gain_multiples = (@type.is_a?(Array)? true : false) donner_butin afficher_fenetres ajuster_position_fenetres afficher_texte end #-------------------------------------------------------------------------- # * Donne le butin gagné #-------------------------------------------------------------------------- def donner_butin if @gain_multiples for i in 0...@type.size case @type[i] when 1 $game_party.gain_item($data_items[@index[i]], @num[i]) when 2 $game_party.gain_item($data_weapons[@index[i]], @num[i]) when 3 $game_party.gain_item($data_armors[@index[i]], @num[i]) when 4 $game_party.gain_gold(@num[i]) when 5 if @index[i] == 0 $game_party.members.each{|member| member.change_exp(member.exp + @num[i],Config_Contenu::Afficher_level_up) } else actor = $game_actors[@index[i]] actor.change_exp(actor.exp + @num[i],Config_Contenu::Afficher_level_up) end end end else case @type when 1 $game_party.gain_item($data_items[@index], @num) when 2 $game_party.gain_item($data_weapons[@index], @num) when 3 $game_party.gain_item($data_armors[@index], @num) when 4 $game_party.gain_gold(@num) when 5 if @index == 0 $game_party.members.each{|member| member.change_exp(member.exp + @num,Config_Contenu::Afficher_level_up) } else actor = $game_actors[@index] actor.change_exp(actor.exp + @num,Config_Contenu::Afficher_level_up) end end end end #-------------------------------------------------------------------------- # * Affiche les fenêtres de butin #-------------------------------------------------------------------------- def afficher_fenetres @window_lieu = Window_Lieu.new @window_butin = Window_Butin.new(@type) end #-------------------------------------------------------------------------- # * Centre les fenêtre sur l'écran #-------------------------------------------------------------------------- def ajuster_position_fenetres @window_lieu.x=(544-@window_lieu.width)/2 @window_butin.x = (544-@window_butin.width)/2 if @gain_multiples @window_lieu.y = (416-@window_lieu.height-@window_butin.height)/2 @window_butin.y = @window_lieu.y + @window_butin.height-25*(@type.size-1) else @window_lieu.y=(416-@window_lieu.height-@window_butin.height)/2 @window_butin.y =(416-@window_lieu.height+@window_butin.height)/2 end end
#-------------------------------------------------------------------------- # * Affiche le texte voulu #-------------------------------------------------------------------------- def afficher_texte @window_lieu.set_text(@lieu) if @gain_multiples y = 0 for i in 0...@type.size special = false case @type[i] when 1 nom = $data_items[@index[i]].name icone = $data_items[@index[i]].icon_index when 2 nom = $data_weapons[@index[i]].name icone = $data_weapons[@index[i]].icon_index when 3 nom = $data_armors[@index[i]].name icone = $data_armors[@index[i]].icon_index when 4 nom = Config_Contenu::Text_gain_gold icone = Config_Contenu::Icone_argent special = true when 5 nom = Config_Contenu::Text_gain_exp icone = Config_Contenu::Icone_exp special = true end @window_butin.set_gain(0,y,nom,icone,@num[i],special) y += 25 end else argent = false case @type when 1 nom = $data_items[@index].name icone = $data_items[@index].icon_index when 2 nom = $data_weapons[@index].name icone = $data_weapons[@index].icon_index when 3 nom = $data_armors[@index].name icone = $data_armors[@index].icon_index when 4 nom = Config_Contenu::Text_gain_gold icone = Config_Contenu::Icone_argent special = true when 5 nom = Config_Contenu::Text_gain_exp icone = Config_Contenu::Icone_exp special = true end @window_butin.set_gain(0,0,nom,icone,@num,special) end end #-------------------------------------------------------------------------- # * Update #-------------------------------------------------------------------------- def update @spriteset.update if Config_Contenu::Update_spiriteset $game_map.update if Config_Contenu::Update_event $scene = Scene_Map.new if Input.trigger?(Input::B) or Input.trigger?(Input::C) end #-------------------------------------------------------------------------- # * Termine la scene #-------------------------------------------------------------------------- def terminate @spriteset.dispose @window_lieu.dispose @window_butin.dispose end end #============================================================================== # ** Window_Lieu #------------------------------------------------------------------------------ # La fenêtre qui gère le titre général du butin obtenu #============================================================================== class Window_Lieu < Window_Base #-------------------------------------------------------------------------- # * Initialize #-------------------------------------------------------------------------- def initialize super(0,0,250,56) end #-------------------------------------------------------------------------- # * Affiche le texte dans la fenêtre (/!\ Personalisable) #-------------------------------------------------------------------------- def set_text(lieu) case lieu when 0 # Par défaut title = "Butin" Audio.se_play("Audio/SE/#{Config_Contenu::SE_defaut}", Config_Contenu::Volume_defaut, Config_Contenu::Tempo_defaut) if Config_Contenu::Musique_defaut when 1 # Coffre title = Config_Contenu::Text_coffre Audio.se_play("Audio/SE/#{Config_Contenu::SE_coffre}", Config_Contenu::Volume_coffre, Config_Contenu::Tempo_coffre) if Config_Contenu::Musique_coffre when 2 # PNJ title = Config_Contenu::Text_pnj Audio.se_play("Audio/SE/#{Config_Contenu::SE_pnj}", Config_Contenu::Volume_pnj, Config_Contenu::Tempo_pnj) if Config_Contenu::Musique_pnj when 3 # Recu (Autres coffre/PNJ) title = Config_Contenu::Text_autre Audio.se_play("Audio/SE/#{Config_Contenu::SE_autre}",Config_Contenu::Volume_autres, Config_Contenu::Tempo_autres) if Config_Contenu::Musique_coffre end self.contents.draw_text(0,0,contents.width,WLH,title,1) end end
#============================================================================== # ** Window_Butin #------------------------------------------------------------------------------ # La fenêtre qui gère les objets obtenus #============================================================================== class Window_Butin < Window_Base #-------------------------------------------------------------------------- # * Initialize #-------------------------------------------------------------------------- def initialize(type) if type.is_a?(Array) super(0,0,250,56 + 25*(type.size-1)) else super(0,0,250,56) end end #-------------------------------------------------------------------------- # * Affiche les objets/gils gagnés #-------------------------------------------------------------------------- def set_gain(x,y,butin,icone,num,special) @num = num draw_icon(icone,x,y) self.contents.draw_text(x+25,y,150,WLH,butin) if special self.contents.draw_text(x,y,contents.width,WLH,@num,2) else self.contents.draw_text(x,y,contents.width,WLH,Config_Contenu::Text_quantite + @num.to_s,2) end end end Ça devrait marcher =) |
|
Seigneur Lv.18
Age : 29 Avertissements : 3 Inscrit le : 20/12/2008 Messages : 2292
| Sujet: Re: [Résolu]PB ~ script Pop-up de Blockade Dim 20 Juin 2010 - 12:11 | |
| |
|