| [VX] Afficher une Bulle au dessus d'un Event | |
|
|
Auteur | Message |
---|
Flibustier Lv.21
Age : 30 Inscrit le : 24/05/2008 Messages : 3234
| Sujet: [VX] Afficher une Bulle au dessus d'un Event Mer 4 Nov 2009 - 16:37 | |
| Moi voilà avec un nouveau script ! Auteur : La Meche (Nan jure ) ) Version : 1.2 Description du script :- Permet l'affichage d'un petit texte au dessus d'un evenement Screen :script : - Code:
-
#============================================================================== # ● [VX] ◦ Affichage de Bulle au dessus d'un Event #------------------------------------------------------------------------------ # ◦ Par La Meche # ◦ http://rpg-maker-vx.bbactif.com/forum.htm # ◦ Crée le 04/11/09 # ◦ Version 1.2 #------------------------------------------------------------------------------ # ● Installation : # Insérez le script au dessus de main #------------------------------------------------------------------------------ =begin # ● Utilisation # ~ Pour créer une bulle : # Dans un event faites un appel de script avec ceci dedans :
creer_bulle(bulle_id, event_id, text, text_2)
# Dedans remplacer : # - bulle_id : Numéro de la bulle, utilisé pour la détruire plus tard # - event_id : L'ID de l'event sur lequel vous voulez afficher le texte # - text / text_2 : Marquez entre " " votre texte # Si vous ne voulez pas de 2éme texte, mettez "" à la place de text_2 # # ~ Pour détruire une bulle : # Dans un event faite un appel de script avec ceci dedans
effacer_bulle(bulle_id)
# Avec bulle_id le numéro de la bulle à détruire # # ~ Pour avoir une couleur # Dans un event faite un appel de script avec ceci dedans
couleur(rouge, vert, bleu)
# > Rouge, Vert, Bleu : Ton de couleur Rouge, Vert, Bleu (0-255) # Si vous voulez que rouge mettez 255 dans rouge et 0 dans les autres par exemple #============================================================================== =end
module Bulle #-------------------------------------------------------------------------- # * Nombre de bulles maximun affiché en même temps. # /!\ Plus ce nombre est grand, plus votre # jeu sera susceptible de ramer #-------------------------------------------------------------------------- Bulle_Max = 10 end
#============================================================================== # ** Window_Bulle #------------------------------------------------------------------------------ # Affiche un message au dessus d'un chara. #==============================================================================
class Window_Bulle < Window_Base #-------------------------------------------------------------------------- # * Initialize #-------------------------------------------------------------------------- def initialize(event_id, text, text_2, color) @event_id = event_id @text = text @text_2 = text_2 @sprite = Window_Bulle_Affiche.new(@event_id, @text, @text_2, color) @w = @sprite.longeur @h = @sprite.hauteur update_pos end #-------------------------------------------------------------------------- # * Charge la nouvelle position de la bulle #-------------------------------------------------------------------------- def update_pos if@sprite.disposed? return end if @event_id != 0 x = $game_map.events[@event_id].screen_x y = $game_map.events[@event_id].screen_y else x = $game_player.screen_x y = $game_player.screen_y end @sprite.x = x - (@w/2) - 16 @sprite.y = y - (@h/2) - 64 @sprite.y -= 12 if @text_2 != "" end #-------------------------------------------------------------------------- # * Effacement de la bulle #-------------------------------------------------------------------------- def effacer return if @sprite.disposed? col = Color.new(0, 0, 0, 0) for i in 0...@h/2 +1 @sprite.contents.fill_rect(0, i, @w, 1, col) @sprite.contents.fill_rect(0, @h-i, @w, 1, col) Graphics.update if i%3 == 1 end if @sprite != nil @sprite.dispose if @sprite.disposed? == false end end end
#============================================================================== # ** Window_Bulle_Affiche #------------------------------------------------------------------------------ # Gére la bulle. #==============================================================================
class Window_Bulle_Affiche < Window_Base #-------------------------------------------------------------------------- # * Initialize #-------------------------------------------------------------------------- def initialize(event_id, text, text_2, color) super(0, 0, 544, 416) self.opacity = 0 self.z = 50 convertion(text) convertion(text_2) if text_2 != "" @longeur_text = self.contents.text_size(text).width @longeur_text_2 = self.contents.text_size(text_2).width if text_2 != "" @w = 0 @h = 0 if text_2 != "" if @longeur_text_2 > @longeur_text @w = @longeur_text_2 self.width = @longeur_text_2 + 32 else @w = @longeur_text self.width = @longeur_text + 32 end @h = 48 self.height = 48 + 32 else @w = @longeur_text @h = 24 self.width = @longeur_text + 32 self.height = 24 + 32 end creation_bitmap self.contents.font.color = color self.contents.draw_text(0, 0, @longeur_text, 24, text, 0) self.contents.draw_text(0, 24, @longeur_text_2, 24, text_2, 0) if text_2 != "" self.contents.font.color = normal_color end #-------------------------------------------------------------------------- # * Caratéres Spréciaux #-------------------------------------------------------------------------- def convertion(text) text.gsub!(/\\V\[([0-9]+)\]/i) { $game_variables[$1.to_i] } text.gsub!(/\\N\[([0-9]+)\]/i) { $game_actors[$1.to_i].name } text.gsub!(/\n/) {""} end #-------------------------------------------------------------------------- # * Create Window Contents #-------------------------------------------------------------------------- def creation_bitmap self.contents.dispose self.contents = Bitmap.new(width - 32, height - 32) end #-------------------------------------------------------------------------- # * Ouvre la bulle #-------------------------------------------------------------------------- def ouvrir return if @sprite.disposed? col = Color.new(0, 0, 0, 0) for i in 0...@h/2 +1 @sprite.contents.fill_rect(0, i, @w, 1, col) @sprite.contents.fill_rect(0, @h-i, @w, 1, col) Graphics.update if i%3 == 1 end if @sprite != nil @sprite.dispose if @sprite.disposed? == false end end #-------------------------------------------------------------------------- # * Calcule la longeur #-------------------------------------------------------------------------- def longeur return @w end #-------------------------------------------------------------------------- # * Calcule la hauteur #-------------------------------------------------------------------------- def hauteur return @h end end
#============================================================================= # ** Scene_Map #------------------------------------------------------------------------------ # Surcharge de Scene_Map. #==============================================================================
class Scene_Map #-------------------------------------------------------------------------- # * Terminate #-------------------------------------------------------------------------- alias bulle_terminate terminate def terminate for i in 0...Bulle::Bulle_Max $game_map.bulle[i].effacer if $game_map.bulle[i] != nil $game_map.bulle[i] = nil end bulle_terminate end #-------------------------------------------------------------------------- # * Update #-------------------------------------------------------------------------- alias bulle_update update def update for i in 0...Bulle::Bulle_Max $game_map.bulle[i].update_pos if $game_map.bulle[i] != nil end bulle_update end #-------------------------------------------------------------------------- # * Update Transfer Player #-------------------------------------------------------------------------- alias bulle_update_transfer_player update_transfer_player def update_transfer_player return unless $game_player.transfer? for i in 0..Bulle::Bulle_Max $game_map.bulle[i].effacer if $game_map.bulle[i] != nil $game_map.bulle[i] = nil end bulle_update_transfer_player end end
#============================================================================== # ** Game_Map #------------------------------------------------------------------------------ # Surcharge de Game_Map #==============================================================================
class Game_Map #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :bulle #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- alias add_initialize initialize def initialize add_initialize @bulle = [] end end
#============================================================================== # ** Game_Interpreter #------------------------------------------------------------------------------ # Surcharge de Game_Interpreter #==============================================================================
class Game_Interpreter #-------------------------------------------------------------------------- # * Object Initialization # depth : nest depth # main : main flag #-------------------------------------------------------------------------- alias add_initialize initialize def initialize(depth = 0, main = false) @color = Color.new(255, 255, 255) add_initialize(depth, main) end #-------------------------------------------------------------------------- # * Change la couleur des bulles #-------------------------------------------------------------------------- def couleur(rouge, vert, bleu) @color = Color.new(rouge, vert, bleu) end #-------------------------------------------------------------------------- # * Créer une bulle #-------------------------------------------------------------------------- def creer_bulle(bulle_id, event_id, text, text2 = "") $game_map.bulle[bulle_id] = Window_Bulle.new(event_id, text, text2, @color) end #-------------------------------------------------------------------------- # * Effacer une bulle #-------------------------------------------------------------------------- def effacer_bulle(bulle_id, event_id) $game_map.bulle[bulle_id].effacer end end
Dernière édition par La Meche le Ven 6 Nov 2009 - 18:38, édité 3 fois |
|
| |
dYeu retraité prématurément
Age : 29 Inscrit le : 09/02/2008 Messages : 5357
| Sujet: Re: [VX] Afficher une Bulle au dessus d'un Event Mer 4 Nov 2009 - 17:07 | |
| Le gérage de bulle est assez chaud mais ça m'a l'air fun ^^. Cependant bon courage à celui qui veut mettre du texte en bulle de partout ! +10 en script T_T. |
|
| |
Age : 33 Inscrit le : 27/06/2008 Messages : 10881
| Sujet: Re: [VX] Afficher une Bulle au dessus d'un Event Mer 4 Nov 2009 - 17:09 | |
| Un texte fixe, c'est ça ? Pratique pour les cinématiques, donc !
Merci du partage et de la création x) |
|
| |
Flibustier Lv.21
Age : 30 Inscrit le : 24/05/2008 Messages : 3234
| Sujet: Re: [VX] Afficher une Bulle au dessus d'un Event Mer 4 Nov 2009 - 17:13 | |
| - Citation :
- Un texte fixe, c'est ça ?
Nan il bouge avec l'event ^^ Je l'ai utilisait principalement pour des textes annexes (voir le screen). fabY : + 10 ! T_T Il me reste plus beaucoup de point avant de devoir refuser des points T_T |
|
| |
Ex-Admin Cruelle
Age : 32 Inscrit le : 03/07/2008 Messages : 2441
| Sujet: Re: [VX] Afficher une Bulle au dessus d'un Event Mer 4 Nov 2009 - 17:18 | |
| Bon script ca gére =) Tu devrait faire ta librairie xD |
|
| |
Voyageur Lv.10
Inscrit le : 07/03/2009 Messages : 380
| Sujet: Re: [VX] Afficher une Bulle au dessus d'un Event Mer 4 Nov 2009 - 17:19 | |
| ouais mais si l'évent est fixe, le texte aussi >.<
mais je me demande un truc:
le texte change de couleur avec la teinte de la map? il y a un contour autour du texte? (si il y a un fond blanc)... |
|
| |
Flibustier Lv.21
Age : 30 Inscrit le : 24/05/2008 Messages : 3234
| Sujet: Re: [VX] Afficher une Bulle au dessus d'un Event Mer 4 Nov 2009 - 17:27 | |
| - Citation :
- le texte change de couleur avec la teinte de la map?
Nan, il reste blanc ! Comme sur le screen - Citation :
- il y a un contour autour du texte? (si il y a un fond blanc)...
Bah nan x] Faudrais que je fasse la possibilité de changer la couleur ! (Je le ferrais dans quelques temps ^^) Blocky : Ouais je devrais pas tarder à la faire ! D'ici la prochaine MàJ de ce script ! PS : Je peux te piquer ta fabuleuse explication sur la fonction Color ? |
|
| |
Ex-Admin Cruelle
Age : 32 Inscrit le : 03/07/2008 Messages : 2441
| Sujet: Re: [VX] Afficher une Bulle au dessus d'un Event Mer 4 Nov 2009 - 18:03 | |
| Quelle explication ? Mais ouais vasy =) |
|
| |
Flibustier Lv.21
Age : 30 Inscrit le : 24/05/2008 Messages : 3234
| Sujet: Re: [VX] Afficher une Bulle au dessus d'un Event Mer 4 Nov 2009 - 18:08 | |
| Enduit pour lame ! - Spoiler:
- Code:
-
#================================================== # Quand un enduit est appliqué quelle couleur ? # Pour choisir mettre : # Color.new(rouge, vert, bleu[alpha]) # > Rouge, Vert, Bleu : Ton de couleur Rouge, Vert, Bleu (0-255) # > Alpha : Facultatif, c'est la transparence, par defaut 255 (0-255) # Si vous voulez que rouge mettez 255 dans rouge et 0 dans les autres par exemple # Jaune clair : 255,255,64 #================================================== Couleur = Color.new(255, 255, 64)
|
|
| |
Seigneur Lv.18
Age : 29 Avertissements : 3 Inscrit le : 20/12/2008 Messages : 2292
| Sujet: Re: [VX] Afficher une Bulle au dessus d'un Event Mer 4 Nov 2009 - 18:57 | |
| Moi je trouve que ça pourrait être utile pour un sort de lecture dans les pensées ?
En tout cas, merci, super script =D |
|
| |
Ex-Admin Cruelle
Age : 32 Inscrit le : 03/07/2008 Messages : 2441
| Sujet: Re: [VX] Afficher une Bulle au dessus d'un Event Mer 4 Nov 2009 - 19:22 | |
| Vasy fais toi plaisir, t'a l'autorisation ! |
|
| |
Voyageur Lv.10
Age : 42 Inscrit le : 04/12/2008 Messages : 383
| Sujet: Re: [VX] Afficher une Bulle au dessus d'un Event Jeu 5 Nov 2009 - 8:55 | |
| Excellente idée La Meche !!
Petite suggestion : - Passer par une variable d'instance de Game_Map au lieu de cette variable globale. - Simplifier la gestion des bulles en créant de nouvelles methodes dans Game_Interpreter. ( Genre : creer_bulle(text, id_event), supprimer_bulle(id) )
Quoi qu'il en soit, félicitations !! |
|
| |
Flibustier Lv.21
Age : 30 Inscrit le : 24/05/2008 Messages : 3234
| Sujet: Re: [VX] Afficher une Bulle au dessus d'un Event Jeu 5 Nov 2009 - 17:03 | |
| Ah ouais ! Pas bête ça ! Merci je vais vois ça ^^
Blocky : Thanks ! |
|
| |
Poulet carnivore Lv.2
Age : 26 Inscrit le : 22/08/2009 Messages : 20
| Sujet: Re: [VX] Afficher une Bulle au dessus d'un Event Ven 6 Nov 2009 - 22:20 | |
| Super cela va m'aider,merci!
Obscurity |
|
| |
Flibustier Lv.21
Age : 30 Inscrit le : 24/05/2008 Messages : 3234
| Sujet: Re: [VX] Afficher une Bulle au dessus d'un Event Sam 7 Nov 2009 - 8:21 | |
| De rien ^^
Au fait, MàJ du script ! On peut désormais modifier la couleur ! |
|
| |
Va-nu-pieds Lv.4
Inscrit le : 07/10/2009 Messages : 54
| Sujet: Re: [VX] Afficher une Bulle au dessus d'un Event Sam 7 Nov 2009 - 9:27 | |
| Il Faudrait aussi afficher un fond en forme de bulle et ce serait parfait! |
|
| |
Citadin Lv.7
Age : 28 Inscrit le : 04/09/2009 Messages : 181
| Sujet: Re: [VX] Afficher une Bulle au dessus d'un Event Dim 7 Fév 2010 - 14:19 | |
| (Désolé du nécropost) Mais c'est pour une précision ^^
Si vous voulez afficher le texte en haut du hero vous devez indiquer l'évènement 0 ^^ |
|
| |
Chevalier Lv.17
Age : 31 Inscrit le : 27/04/2008 Messages : 1835
| Sujet: Re: [VX] Afficher une Bulle au dessus d'un Event Dim 7 Fév 2010 - 14:47 | |
| Et normalement, pour qu'elle s'affiche au dessus du héros, la valeur doit être -1... |
|
| |
Poulet trizo Lv.3
Age : 28 Inscrit le : 02/04/2009 Messages : 40
| Sujet: Re: [VX] Afficher une Bulle au dessus d'un Event Sam 20 Fév 2010 - 19:21 | |
| Désolé du Nécropost mais j'ai une question à posé, je voudrais mettre une variable (le pseudo du personnage) au dessus du personnage. Comment faire ? J'ai essayé avec un - Code:
-
creer_bulle(1,0,"\N[1]","") Mais cela ne marche pas j'ai une erreur. Pourriez vous m'aider à le faire ?? |
|
| |
Flibustier Lv.21
Age : 30 Inscrit le : 24/05/2008 Messages : 3234
| Sujet: Re: [VX] Afficher une Bulle au dessus d'un Event Dim 21 Fév 2010 - 9:33 | |
| Gothor > J'ai jamais dit de -1 O.o C'est belle est 0 pour afficher au dessus du héro Yoy > Tu obtiens quel erreur ? |
|
| |
Poulet trizo Lv.3
Age : 28 Inscrit le : 02/04/2009 Messages : 40
| Sujet: Re: [VX] Afficher une Bulle au dessus d'un Event Dim 21 Fév 2010 - 10:36 | |
| J'obtient sa |
|
| |
Flibustier Lv.21
Age : 30 Inscrit le : 24/05/2008 Messages : 3234
| Sujet: Re: [VX] Afficher une Bulle au dessus d'un Event Dim 21 Fév 2010 - 11:01 | |
| Hm... Tu n'as rien toucher dans le script ? |
|
| |
Poulet trizo Lv.3
Age : 28 Inscrit le : 02/04/2009 Messages : 40
| Sujet: Re: [VX] Afficher une Bulle au dessus d'un Event Dim 21 Fév 2010 - 14:26 | |
| Ah petite amélioration ! Le \N[1] s'affiche mais pas le pseudo.. et de plus il s'efface au bout de longtemps et pas tout de suite résultat sa lag |
|
| |
Maître des Duels
Age : 32 Inscrit le : 29/07/2009 Messages : 7841
| Sujet: Re: [VX] Afficher une Bulle au dessus d'un Event Dim 21 Fév 2010 - 15:26 | |
| Hum, essaye plutôt game_party[ID].level.to_s.
"Il est de niveau" + game_party[ID].level.to_s + " !"
Ça pourrait marcher. |
|
| |
Poulet trizo Lv.3
Age : 28 Inscrit le : 02/04/2009 Messages : 40
| Sujet: Re: [VX] Afficher une Bulle au dessus d'un Event Sam 27 Fév 2010 - 19:39 | |
| J'up pour dire que mon problème n'est toujours pas résolu, j'ai chercher mais je ne trouve pas, j'ai fais des tentatives mais sans résultat, enfaite maintenant j'ai le texte au dessus, mais au lieu de me mettre le pseudo de l'acteur 1, j'ai "\N[1]" au dessus du héro, sauf que quand je bouge, sa n'efface pas l'ancienne emplacement du "\N[1]" et fait beaucoup ramé le jeu HELP !
Edit : Ah y a du mieu, le "\N[1]" S'actualise !
Dernière édition par Yoy le Sam 27 Fév 2010 - 19:44, édité 1 fois |
|
| |
| Sujet: Re: [VX] Afficher une Bulle au dessus d'un Event | |
| |
|
| |
| [VX] Afficher une Bulle au dessus d'un Event | |
|