|
| | Image dans message de chara | |
| | Auteur | Message |
---|
Omega Arma Jongleur Itinérant
Nombre de messages : 67 Age : 33 Projet(s) en cours : FF : Heaven's & Darkness's Processus (experimental) Niveau Rpg Maker : Novice mais bon mappeur Jeux Préférés : Gears of War, Final Fantasy, Zelda, etc... Date d'inscription : 23/08/2007
| Sujet: Image dans message de chara Dim 02 Sep 2007, 11:45 | |
| Bonjour, j'aurai aimé savoir comment met-on une image de personnage dans ses messages de conversation, merci d'avance | |
| | | superfabien Jongleur Itinérant
Nombre de messages : 67 Age : 32 Projet(s) en cours : Aurora Sky Niveau Rpg Maker : Assez bon Date d'inscription : 18/08/2007
| Sujet: Re: Image dans message de chara Dim 02 Sep 2007, 12:03 | |
| Bonjour, tu dois utiliser le script message avancé et tu dois rentrer cette commande dans un nouveau message \f[FaceName] FaceName est le nom de l'image graphique qui doit ce trouver dans le répertoire "Graphics\Pictures" dans votre projet de RPG Maker XP. L'image doit être en PNG et un size de 96X96 pixels. Remplacez seulement "FaceName" par le nom de votre image voilà en espérant t'avoir aidé
Dernière édition par le Sam 08 Sep 2007, 21:57, édité 1 fois | |
| | | Omega Arma Jongleur Itinérant
Nombre de messages : 67 Age : 33 Projet(s) en cours : FF : Heaven's & Darkness's Processus (experimental) Niveau Rpg Maker : Novice mais bon mappeur Jeux Préférés : Gears of War, Final Fantasy, Zelda, etc... Date d'inscription : 23/08/2007
| Sujet: Re: Image dans message de chara Sam 08 Sep 2007, 10:27 | |
| merci seb mais sa ne marche pas, j'ai respecté toutes tes consignes et l'image n'apparait pas | |
| | | Don Estebahn Maître du Savoir
Nombre de messages : 2145 Age : 34 Jeux Préférés : Soul Reaver, Morrowind, Way of the Samurai Date d'inscription : 18/02/2007
| Sujet: Re: Image dans message de chara Sam 08 Sep 2007, 10:33 | |
| Dans tes messages, tu mets bien \f[Nom_Image] au tout début du texte? | |
| | | Omega Arma Jongleur Itinérant
Nombre de messages : 67 Age : 33 Projet(s) en cours : FF : Heaven's & Darkness's Processus (experimental) Niveau Rpg Maker : Novice mais bon mappeur Jeux Préférés : Gears of War, Final Fantasy, Zelda, etc... Date d'inscription : 23/08/2007
| Sujet: Re: Image dans message de chara Sam 08 Sep 2007, 10:50 | |
| oui, je fais la commande "afficher un message ..." je marque /f[scorpion], donc une des images etant dans le dossier pictures de mon projet, et cela reste inscrit sans afficher d'image | |
| | | superfabien Jongleur Itinérant
Nombre de messages : 67 Age : 32 Projet(s) en cours : Aurora Sky Niveau Rpg Maker : Assez bon Date d'inscription : 18/08/2007
| Sujet: Re: Image dans message de chara Sam 08 Sep 2007, 22:01 | |
| Il faut bien que tu mete la commande \f[scorpion] avant ton message !
Si ça ne marche toujours pas es que ton image est bien au format .png et es que ça dimension est de 96x96 pixels ?? | |
| | | Invité Invité
| Sujet: Re: Image dans message de chara Dim 09 Sep 2007, 02:57 | |
| Fait attention a la façon tu écrit le \f,
\f[scorpion] et non /f[scorpion]
si jamais sa marche pas copie et colle sa \f[scorpion]. |
| | | Omega Arma Jongleur Itinérant
Nombre de messages : 67 Age : 33 Projet(s) en cours : FF : Heaven's & Darkness's Processus (experimental) Niveau Rpg Maker : Novice mais bon mappeur Jeux Préférés : Gears of War, Final Fantasy, Zelda, etc... Date d'inscription : 23/08/2007
| Sujet: Re: Image dans message de chara Dim 09 Sep 2007, 10:10 | |
| lol vous me prennez pour un demeurez ou quoi , nan serieux j'ai fait copier coller la commande et sa n'a pas marché, pour l'image est bien il ya affiché 96*96 donc je présume que c'est la bonne taille et pur RMXP je n'utilise que des PNG donc normalement sa devrai fonctionné, je vais retenté edit : nan sa ne fonctionne pas, est ce que si certains script ou windowskin on ete modifier cela peu influencer sur l'impossiblité d'afficher une image dans un message ? | |
| | | Invité Invité
| Sujet: Re: Image dans message de chara Lun 10 Sep 2007, 15:18 | |
| - Omega Arma a écrit:
- oui, je fais la commande "afficher un message ..." je marque /f[scorpion], donc une des images etant dans le dossier pictures de mon projet, et cela reste inscrit sans afficher d'image
J'ai vu beaucoup de fois cette erreur. Il faut taper en fait \f[scorpion] comme l'ont dit certains précédemment. |
| | | Omega Arma Jongleur Itinérant
Nombre de messages : 67 Age : 33 Projet(s) en cours : FF : Heaven's & Darkness's Processus (experimental) Niveau Rpg Maker : Novice mais bon mappeur Jeux Préférés : Gears of War, Final Fantasy, Zelda, etc... Date d'inscription : 23/08/2007
| Sujet: Re: Image dans message de chara Lun 10 Sep 2007, 20:29 | |
| idem sa ne fonctionne pas | |
| | | Invité Invité
| Sujet: Re: Image dans message de chara Lun 10 Sep 2007, 21:46 | |
| Bonsoir !
Je me permets d'intervenir, même si j'ai peur de ne pas trop te faire avancer.
J'utilise un script qui permet le mode lettre par lettre, créé par Slipknot, ça risque d'être le même, mais au cas ou, je vais le poster.
Je demande la tôlérance pour le quadruple post qui n'est fait que par nécéssite, a cause de la limite de caractère :s
Dernière édition par le Lun 10 Sep 2007, 21:56, édité 1 fois |
| | | Invité Invité
| Sujet: Re: Image dans message de chara Lun 10 Sep 2007, 21:50 | |
| - Code:
-
#============================================================================== # ** Letter by Letter Message Window #------------------------------------------------------------------------------ # Slipknot # 1.0 # 02.07.06 #------------------------------------------------------------------------------ # Thanks to: # - Dubealex, for some of the features. # - RPG Advocate, for the hexadecimal color. #==============================================================================
# Loads the maps' names $data_map_infos = load_data('Data/MapInfos.rxdata')
class Game_Message #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_accessor :letter_by_letter, :speed, :can_skip, :height, :font, :sound_enable, :sound, :path, :face_rect, :fit, :skin, :nb_skin, :nbyo, :opacity #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize # Letter by letter mode @letter_by_letter = true # Lettter by letter mode's speed @speed = 1 # If this option is false, the player can't skip the message @can_skip = true # Height of each line, used within the fit or above event options @height = 40 # Always resize the message @fit = true # Font for the mesage text @font = $fontface # Sound enable @sound_enable = false # Sound for letter by letter, ['filename', vol] @sound = ['032-Switch01', 70] # Folder for the message pictures @path = 'Graphics/Faces/' # Face rect (only the last two numbers are used) @face_rect = Rect.new(0, 0, 96, 96) # Skin for the message window, nil = default @skin = nil # Skin for the name box, nil = default @nb_skin = nil # Name box y offset @nbyo = 20 # Message window's opacity @opacity = 150 end end
#------------------------------------------------------------------------------ # Begin Game_System Edit #------------------------------------------------------------------------------ class Game_System #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_reader :message #-------------------------------------------------------------------------- # * Alias Listing #-------------------------------------------------------------------------- alias slipknot_lblms_initialize initialize #-------------------------------------------------------------------------- # * Load Database #-------------------------------------------------------------------------- def initialize slipknot_lblms_initialize @message = Game_Message.new end end #------------------------------------------------------------------------------ # End Game_System Edit #------------------------------------------------------------------------------
#------------------------------------------------------------------------------ # Begin Spriteset_Map Edit #------------------------------------------------------------------------------ class Spriteset_Map #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_reader :character_sprites end #------------------------------------------------------------------------------ # End Spriteset_Map Edit #------------------------------------------------------------------------------
#------------------------------------------------------------------------------ # Begin Window_Message Edit #------------------------------------------------------------------------------ class Window_Message < Window_Selectable #-------------------------------------------------------------------------- # * Alias Listing #-------------------------------------------------------------------------- alias slipknot_lblms_terminatemessage terminate_message #-------------------------------------------------------------------------- # * Terminate Message #-------------------------------------------------------------------------- def terminate_message slipknot_lblms_terminatemessage if @name_box && ! @name_box.disposed? @name_box.dispose @name_box = nil end end #-------------------------------------------------------------------------- # * Prepare the message window #-------------------------------------------------------------------------- def refresh self.opacity = $game_system.message_frame == 0 ? 255 : 0 self.back_opacity = system.opacity unless system.fit self.width = 480 self.height = 160 windowskin = system.skin ? system.skin : $game_system.windowskin_name self.windowskin = RPG::Cache.windowskin(windowskin) self.contents = Bitmap.new(448, 128) else contents.clear contents.font.color = normal_color contents.font.size = Font.default_size end contents.font.name = system.font @x = @y = @wait_count = indent = 0 @fit_size = false @sound = system.sound_enable @start_x = 4 @cursor_width = [0, 0, 0, 0] @x = 8 if $game_temp.choice_start == 0 return if ! (@text = $game_temp.message_text) @text.gsub!(/\\\\/) { "\000" } @text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] } @text.gsub!('\$') { $game_party.gold.to_s } @text.gsub!(/\\[Nn]\[([0-9]+)\]/) do $game_actors[$1.to_i] ? $game_actors[$1.to_i].name : '' end @text.gsub!(/\\[Nn][Pp]\[([\d+])\]/) do $game_party.actors[$1.to_i] ? $game_party.actors[$1.to_i].name : '' end @text.gsub!(/\\[Cc]lass\[(\d+)\]/) do $game_actors[$1.to_i] ? $game_actors[$1.to_i].class_name : '' end @text.gsub!(/\\[Mm]ap/) { $data_map_infos[$game_map.map_id].name } if @text.gsub!(/\\[Gg]/, '') gold_set = true end if @text[/\\[Nn]ame/] if @text.sub!(/\\[Nn]ame\[(.*?)\]/, '') name_text = $1 elsif @text.sub!(/\\[Nn]ame/, '') name_text = $game_map.events[$game_system.map_interpreter.event_id].name end end if @text[/\\[Ff]ace/] # Left if @text.sub!(/\\[Ff]ace{(.+?)}/, '') face, face_name = 1, $1 # Right elsif @text.sub!(/\\[Ff]ace\[(.+?)\]/, '') face, face_name = 2, $1 end end if @text[/\\[Pp]/] if @text.sub!(/\\[Pp]\[([-1,0-9]+)\]/, '') event = $1.to_i elsif @text.gsub!(/\\[Pp]/, '') event = $game_system.map_interpreter.event_id end end @text.gsub!('\$') { $game_party.gold.to_s } @text.gsub!(/\\[Cc]\[([0-9A-Fa-f #]+?)\]/) { "\001[#$1]" } @text.gsub!(/\\[Cc]/) { "\001[0]" } @text.gsub!(/\\[Ii]con{([IiWwAaSs])}\[(\d+)\]/) { change_icon($1, $2.to_i) } @text.gsub!(/\\[Ii]con\[(.*?)\]/) { "\002[#$1]" } @text.gsub!('\!') { "\003" } @text.gsub!('\.') { "\004" } @text.gsub!(/\\[Ss]\[([Xx\d]+)\]/) { "\005[#$1]" } @text.gsub!(/\\[Bb]/) { "\006" } @text.gsub!(/\\[Ii]/) { "\007" } @text.gsub!(/\\[Ff]\[(.*?)\]/) { "\010[#$1]" } if @fit_size = (event || system.fit) lines_size = [0, 0, 0, 0] save = @text.clone lines = 0 while (c = @text.slice!(/./m)) if c == "\n" lines += 1 break if lines == 4 if lines >= $game_temp.choice_start lines_size[lines] += 16 end next end lines_size[lines] += eval_text(c, true) end end if face if @fit_size mh = system.height fh = system.face_rect.height lines = (fh.to_f / mh.to_f).ceil if (lines * mh) < fh f_x = face == 2 ? 0 : lines_size.max + 16 f_y = (lines * mh) <= fh ? 0 : (lines * mh - fh) / 2 @start_x += system.face_rect.width + 4 if face == 2 indent += system.face_rect.width + 8 else f_x = face == 2 ? 16 : 336 f_y = 16 @start_x += system.face_rect.width + 36 if face == 2 end f_bitmap = RPG::Cache.picture(face_name) #indent += system.face_rect.width + 8 end if @fit_size @text = save self.height = lines * system.height + 32 self.height += 32 if $game_temp.num_input_variable_id > 0 self.width = lines_size.max + indent + 40 windowskin = system.skin ? system.skin : $game_system.windowskin_name self.windowskin = RPG::Cache.windowskin(windowskin) self.contents = Bitmap.new(self.width - 32, self.height - 32) contents.font.name = system.font end if face contents.blt(f_x, f_y, f_bitmap, system.face_rect) end if ! event h2 = self.height / 2 self.y = $game_temp.in_battle ? 96 - h2 + system.nbyo : case $game_system.message_position when 0 then 96 - h2 + system.nbyo when 1 then 240 - h2 when 2 then 384 - h2 end self.x = 320 - self.width / 2 else c = event > 0 ? $game_map.events[event] : $game_player mx = 636 - self.width fx = [[c.screen_x - self.width / 2, 4].max, mx].min sy = name_text ? system.nbyo + 4 : 4 my = 476 - self.height ch = [$scene.spriteset.character_sprites[event - 1].bitmap.height / 4 + 4, 48].max fy = [[c.screen_y - (ch + self.height), sy].max, my].min self.x = fx self.y = fy end if name_text @name_box = Window_NameBox.new(x, y - system.nbyo, name_text) @name_box.back.opacity = 0 if $game_system.message_frame == 1 end if gold_set @gold_window = Window_Gold.new @gold_window.x = 560 - @gold_window.width if $game_temp.in_battle @gold_window.y = 192 else @gold_window.y = self.y >= 128 ? 32 : 384 end @gold_window.opacity = self.opacity @gold_window.back_opacity = self.back_opacity end end #-------------------------------------------------------------------------- # * Evaluate Text #-------------------------------------------------------------------------- def eval_text(c, read = false) case c when "\000" c = '\\' when "\001" @text.sub!(/\[(.*?)\]/, '') return 0 if read h, c = $1, $1.to_i contents.font.color = h.slice!(/./) == '#' ? hex_color(h) : text_color(c) return when "\002" @text.sub!(/\[(.*?)\]/, '') return 24 if read y = @fit_size ? system.height * @y + (system.height - 24) / 2 : 32 * @y + 4 contents.blt(@x + @start_x, y, RPG::Cache.icon($1.to_s), Rect.new(0, 0, 24, 24)) @x += 24 return unless @y >= $game_temp.choice_start @cursor_width[@y] += 24 return when "\003" return 0 if read @stop = true return when "\004" return 0 if read @wait_count += 10 return when "\005" @text.sub!(/\[([x\d]+)\]/, '') if $1.downcase == 'x' contents.font.size = Font.default_size else contents.font.size = [[$1.to_i, 6].max, system.height].min end return 0 when "\006" contents.font.bold = (! contents.font.bold) return 0 when "\007" contents.font.italic = (! contents.font.italic) return 0 when "\010" @text.sub!(/\[(.*?)\]/, '') if $1.downcase == 'x' contents.font.name = system.font else contents.font.name = [$1.to_s, system.font] end return 0 when "\n" @y += 1 @x = 0 @x = 8 if @y >= $game_temp.choice_start return end w = contents.text_size(c).width return w if read y = @fit_size ? system.height * @y : 32 * @y contents.draw_text(@x + @start_x, y, w * 2, system.height, c) @sound = (system.sound_enable && c != ' ') @x += w return if @y < $game_temp.choice_start || @y > 3 @cursor_width[@y] += w end |
| | | Invité Invité
| Sujet: Re: Image dans message de chara Lun 10 Sep 2007, 21:50 | |
| - Code:
-
#-------------------------------------------------------------------------- # * Finish #-------------------------------------------------------------------------- def finish if $game_temp.choice_max > 0 @item_max = $game_temp.choice_max self.active = true self.index = 0 end if $game_temp.num_input_variable_id > 0 digits_max = $game_temp.num_input_digits_max number = $game_variables[$game_temp.num_input_variable_id] @input_number_window = Window_InputNumber.new(digits_max) input_number.number = number input_number.x = self.x + 8 input_number.y = self.y + $game_temp.num_input_start * (@fit_size ? system.height : 32) end end #-------------------------------------------------------------------------- # * Return Item's Name and Icon Name #-------------------------------------------------------------------------- def change_icon(option, index) s = case option.downcase when 'i' then $data_items[index] when 'w' then $data_weapons[index] when 'a' then $data_armors[index] when 's' then $data_skills[index] end return sprintf("\002[%s]%s", s.icon_name, s.name) if s.name end #-------------------------------------------------------------------------- # * Hexadecimal Colour #-------------------------------------------------------------------------- def hex_color(string) if string.size != 6 return normal_color end r = g = b = 0 5.times do |i| s = string.slice!(/./m) v = hex_convert(s.downcase) case i when 0 then r += v * 16 when 1 then r += v when 2 then g += v * 16 when 3 then g += v when 4 then b += v * 16 when 5 then b += v end end return Color.new(r, g, b) end #-------------------------------------------------------------------------- # * Hexadecimal Convert #-------------------------------------------------------------------------- def hex_convert(c) return c.to_i if c[/[0-9]/] case c when 'a' then 10 when 'b' then 11 when 'c' then 12 when 'd' then 13 when 'e' then 14 when 'f' then 15 end end #-------------------------------------------------------------------------- # * Game Message #-------------------------------------------------------------------------- def system $game_system.message end #-------------------------------------------------------------------------- # * Input Number Window #-------------------------------------------------------------------------- def input_number @input_number_window end #-------------------------------------------------------------------------- # * Frame Update #-------------------------------------------------------------------------- def update if @contents_showing super end if @fade_in self.contents_opacity += 24 if input_number input_number.contents_opacity += 24 end if self.contents_opacity == 255 @fade_in = false end return true end if @text if Input.trigger?(13) if @stop self.pause = @stop = false return end if system.can_skip @skip = true end end return if @stop if @wait_count > 0 && ! @skip @wait_count -= 1 return end loop do if (c = @text.slice!(/./m)) eval_text(c) if @stop self.pause = true return end if ! @skip && @sound Audio.se_play('Audio/SE/' + system.sound[0], system.sound[1]) @sound = false end @wait_count += system.speed else @text = nil break end break if ! @skip end return if @text finish return end if input_number input_number.update if Input.trigger?(13) $game_system.se_play($data_system.decision_se) $game_variables[$game_temp.num_input_variable_id] = input_number.number $game_map.need_refresh = true input_number.dispose @input_number_window = nil terminate_message end return end if @contents_showing self.pause = true if $game_temp.choice_max == 0 if Input.trigger?(12) if $game_temp.choice_max > 0 && $game_temp.choice_cancel_type > 0 $game_system.se_play($data_system.cancel_se) $game_temp.choice_proc.call($game_temp.choice_cancel_type - 1) terminate_message end end if Input.trigger?(13) if $game_temp.choice_max > 0 $game_system.se_play($data_system.decision_se) $game_temp.choice_proc.call(self.index) end terminate_message end return end if ! @fade_out && $game_temp.message_text @contents_showing = true $game_temp.message_window_showing = true reset_window refresh @skip = (! system.letter_by_letter) @stop = false @wait_count = 0 self.visible = true return end return unless visible @fade_out = true self.opacity -= 48 if self.opacity == 0 self.visible = @fade_out = false $game_temp.message_window_showing = false end end #-------------------------------------------------------------------------- # * Updates Cursor Rectangle #-------------------------------------------------------------------------- def update_cursor_rect if index >= 0 n = $game_temp.choice_start + @index #y = @fit_size ? system.height * n : 32 * n y = (@fit_size ? system.height : 32) * n cursor_rect.set(4 + @start_x, y, @cursor_width.max + 8, @fit_size ? system.height : 32) else cursor_rect.empty end end end #------------------------------------------------------------------------------ # End Window_Message Edit #------------------------------------------------------------------------------
#------------------------------------------------------------------------------ # Begin Scene_Map Edit #------------------------------------------------------------------------------ class Scene_Map #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_reader :spriteset end #------------------------------------------------------------------------------ # End Scene_Map Edit #------------------------------------------------------------------------------
#------------------------------------------------------------------------------ # Begin Game_Event Edit #------------------------------------------------------------------------------ class Game_Event < Game_Character #-------------------------------------------------------------------------- # * Name #-------------------------------------------------------------------------- def name @event.name end end #------------------------------------------------------------------------------ # End Game_Event Edit #------------------------------------------------------------------------------
#------------------------------------------------------------------------------ # Begin Interpreter Edit #------------------------------------------------------------------------------ class Interpreter #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_reader :event_id #-------------------------------------------------------------------------- # * Game Message #-------------------------------------------------------------------------- def message $game_system.message end end #------------------------------------------------------------------------------ # End Interpreter Edit #------------------------------------------------------------------------------
class Window_NameBox < Sprite #-------------------------------------------------------------------------- # * Public Instance Variables #-------------------------------------------------------------------------- attr_reader :back #-------------------------------------------------------------------------- # * Object Initialization #-------------------------------------------------------------------------- def initialize(x, y, text) dumb = Bitmap.new(160, 42) dumb.font.name = system.font size = dumb.text_size(text).width dumb.dispose @back = Window_Base.new(x, y, size + 12, 32) windowskin = system.nb_skin ? system.nb_skin : $game_system.windowskin_name @back.windowskin = RPG::Cache.windowskin(windowskin) @back.z = 9999 viewport = Viewport.new(x + 6, y + 5, size, 22) viewport.z = 9999 super(viewport) self.bitmap = Bitmap.new(size, 22) bitmap.font.name = system.font bitmap.draw_text(0, 0, size, 22, text) end #-------------------------------------------------------------------------- # * Game Message #-------------------------------------------------------------------------- def system $game_system.message end #-------------------------------------------------------------------------- # * Dispose #-------------------------------------------------------------------------- def dispose @back.dispose @back = nil super end end
=begin Fonctionnement:
Afficher le texte avec une couleur Web (Hexadécimale) : \c[#000000]
Afficher un Faceset dans un message : \f[NomDuFichier] (Le fichier image devra etre en PNG, 96x96px et doit se trouver dans Graphic\Pictures)
Afficher le nom de la map dans un message : \Map
Afficher le prix d'un objet dans un message : \Price[ID de l'item) (L'ID des objets sont visible dans la Base de Donnée)
Afficher la classe d'un Personnage dans un message : \Classe[ID du Hero] (L'ID des heros sont visible dans la Base de Donnée)
Changer la police d'ecriture pendant un dialogue : \t[Nom de la police] Exemple : \t[Courier New]
#Afficher un fenetre qui montre votre argent : \G
Afficher le contenue d'une variable : \V[N° de la variable]
Afficher le nom d'un objet : \V[i+N° de l'objet]
Afficher le nom d'une arme : \V[w+N° de l'arme]
Afficher le nom d'une armure : \V[a+N° de l'armure]
Afficher le nom d'une skill : \V[s+N° de la skill]
Afficher la boite de message au dessus d'un event ou au dessus du hero : \P[ID de l'event] (l'ID du hero est 0)
Afficher le nom du locuteur au dessus de la boite de message : \Name[Nom du locuteur]
Changer la taille du texte : \H[Chiffre entre 6 et 32]
Afficher le nom du Hero dans un message : \N[ID du hero]
Afficher le nom d'un monstre dans un message : \M[ID Du Monstre]
Modifier l'opacitée du texte : \O[Chiffre entre 0 et 255] (À 0 le texte est transparent) =end |
| | | Invité Invité
| Sujet: Re: Image dans message de chara Lun 10 Sep 2007, 21:55 | |
| Ensuite, il y a dans le script, deux commentaires contradictoires : - Citation :
Afficher un Faceset dans un message : \f[NomDuFichier] (Le fichier image devra etre en PNG, 96x96px et doit se trouver dans Graphic\Pictures)
et - Citation :
- # Folder for the message pictures
@path = 'Graphics/Faces/' Donc, si tu utilises le même script que moi, je te conseilles de mettre tes faces dans un dossier que tu creera dans graphics, nommé "Faces" ( respecte scrupuleusement les majuscules quand tu suis un script, ça peut t'aider ). Voilà, je penses que c'est tout, le probleme devrait être réglé. Ps : je rajoute que le script est sympa, puisqu'il permet d'utiliser le nom de l'evenement dans la boite de dialogue sans []. ex : \n \face[Arshes] = vous aurez le nom dans la boite et la face. ( selon les versions, ca peut être \face et \name, à essayer )
Dernière édition par le Mar 11 Sep 2007, 14:50, édité 1 fois |
| | | Invité Invité
| Sujet: Re: Image dans message de chara Mar 11 Sep 2007, 01:51 | |
| Au pire Omega Arma, affiches ton script. Il faut juste regarder la parties des substitution de texte dans la méthode refresh de la classe Window_Message. |
| | | Omega Arma Jongleur Itinérant
Nombre de messages : 67 Age : 33 Projet(s) en cours : FF : Heaven's & Darkness's Processus (experimental) Niveau Rpg Maker : Novice mais bon mappeur Jeux Préférés : Gears of War, Final Fantasy, Zelda, etc... Date d'inscription : 23/08/2007
| Sujet: Re: Image dans message de chara Mar 11 Sep 2007, 16:47 | |
| Voila Dany, s'il n'y a aucun moyen de le modifier et bien jessayerai ta solution noobylyone - Code:
-
#============================================================================== # ■ Window_Message #------------------------------------------------------------------------------ # 文章表示に使うメッセージウィンドウです。 #==============================================================================
class Window_Message < Window_Selectable #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- def initialize super(80, 304, 480, 160) self.contents = Bitmap.new(width - 32, height - 32) self.visible = false self.z = 9998 @fade_in = false @fade_out = false @contents_showing = false @cursor_width = 0 self.active = false self.index = -1 end #-------------------------------------------------------------------------- # ● 解放 #-------------------------------------------------------------------------- def dispose terminate_message $game_temp.message_window_showing = false if @input_number_window != nil @input_number_window.dispose end super end #-------------------------------------------------------------------------- # ● メッセージ終了処理 #-------------------------------------------------------------------------- def terminate_message self.active = false self.pause = false self.index = -1 self.contents.clear # 表示中フラグをクリア @contents_showing = false # メッセージ コールバックを呼ぶ if $game_temp.message_proc != nil $game_temp.message_proc.call end # 文章、選択肢、数値入力に関する変数をクリア $game_temp.message_text = nil $game_temp.message_proc = nil $game_temp.choice_start = 99 $game_temp.choice_max = 0 $game_temp.choice_cancel_type = 0 $game_temp.choice_proc = nil $game_temp.num_input_start = 99 $game_temp.num_input_variable_id = 0 $game_temp.num_input_digits_max = 0 # ゴールドウィンドウを開放 if @gold_window != nil @gold_window.dispose @gold_window = nil end end #-------------------------------------------------------------------------- # ● リフレッシュ #-------------------------------------------------------------------------- def refresh self.contents.clear self.contents.font.color = normal_color self.contents.font.name = $fontface self.contents.font.size = $fontsize x = y = 0 @cursor_width = 0 # 選択肢なら字下げを行う if $game_temp.choice_start == 0 x = 8 end # 表示待ちのメッセージがある場合 if $game_temp.message_text != nil text = $game_temp.message_text # 制御文字処理 begin last_text = text.clone text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] } end until text == last_text text.gsub!(/\\[Nn]\[([0-9]+)\]/) do $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : "" end # 便宜上、"\\\\" を "\000" に変換 text.gsub!(/\\\\/) { "\000" } # "\\C" を "\001" に、"\\G" を "\002" に変換 text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" } text.gsub!(/\\[Gg]/) { "\002" } # c に 1 文字を取得 (文字が取得できなくなるまでループ) while ((c = text.slice!(/./m)) != nil) # \\ の場合 if c == "\000" # 本来の文字に戻す c = "\\" end # \C[n] の場合 if c == "\001" # 文字色を変更 text.sub!(/\[([0-9]+)\]/, "") color = $1.to_i if color >= 0 and color <= 7 self.contents.font.color = text_color(color) end # 次の文字へ next end # \G の場合 if c == "\002" # ゴールドウィンドウを作成 if @gold_window == nil @gold_window = Window_Gold.new @gold_window.x = 560 - @gold_window.width if $game_temp.in_battle @gold_window.y = 192 else @gold_window.y = self.y >= 128 ? 32 : 384 end @gold_window.opacity = self.opacity @gold_window.back_opacity = self.back_opacity end # 次の文字へ next end # 改行文字の場合 if c == "\n" # 選択肢ならカーソルの幅を更新 if y >= $game_temp.choice_start @cursor_width = [@cursor_width, x].max end # y に 1 を加算 y += 1 x = 0 # 選択肢なら字下げを行う if y >= $game_temp.choice_start x = 8 end # 次の文字へ next end # 文字を描画 self.contents.draw_text(4 + x, 32 * y, 40, 32, c) # x に描画した文字の幅を加算 x += self.contents.text_size(c).width end end # 選択肢の場合 if $game_temp.choice_max > 0 @item_max = $game_temp.choice_max self.active = true self.index = 0 end # 数値入力の場合 if $game_temp.num_input_variable_id > 0 digits_max = $game_temp.num_input_digits_max number = $game_variables[$game_temp.num_input_variable_id] @input_number_window = Window_InputNumber.new(digits_max) @input_number_window.number = number @input_number_window.x = self.x + 8 @input_number_window.y = self.y + $game_temp.num_input_start * 32 end end #-------------------------------------------------------------------------- # ● ウィンドウの位置と不透明度の設定 #-------------------------------------------------------------------------- def reset_window if $game_temp.in_battle self.y = 16 else case $game_system.message_position when 0 # 上 self.y = 16 when 1 # 中 self.y = 160 when 2 # 下 self.y = 304 end end if $game_system.message_frame == 0 self.opacity = 255 else self.opacity = 0 end self.back_opacity = 160 end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update super # フェードインの場合 if @fade_in self.contents_opacity += 24 if @input_number_window != nil @input_number_window.contents_opacity += 24 end if self.contents_opacity == 255 @fade_in = false end return end # 数値入力中の場合 if @input_number_window != nil @input_number_window.update # 決定 if Input.trigger?(Input::C) $game_system.se_play($data_system.decision_se) $game_variables[$game_temp.num_input_variable_id] = @input_number_window.number $game_map.need_refresh = true # 数値入力ウィンドウを解放 @input_number_window.dispose @input_number_window = nil terminate_message end return end # メッセージ表示中の場合 if @contents_showing # 選択肢の表示中でなければポーズサインを表示 if $game_temp.choice_max == 0 self.pause = true end # キャンセル if Input.trigger?(Input::B) if $game_temp.choice_max > 0 and $game_temp.choice_cancel_type > 0 $game_system.se_play($data_system.cancel_se) $game_temp.choice_proc.call($game_temp.choice_cancel_type - 1) terminate_message end end # 決定 if Input.trigger?(Input::C) if $game_temp.choice_max > 0 $game_system.se_play($data_system.decision_se) $game_temp.choice_proc.call(self.index) end terminate_message end return end # フェードアウト中以外で表示待ちのメッセージか選択肢がある場合 if @fade_out == false and $game_temp.message_text != nil @contents_showing = true $game_temp.message_window_showing = true reset_window refresh Graphics.frame_reset self.visible = true self.contents_opacity = 0 if @input_number_window != nil @input_number_window.contents_opacity = 0 end @fade_in = true return end # 表示すべきメッセージがないが、ウィンドウが可視状態の場合 if self.visible @fade_out = true self.opacity -= 48 if self.opacity == 0 self.visible = false @fade_out = false $game_temp.message_window_showing = false end return end end #-------------------------------------------------------------------------- # ● カーソルの矩形更新 #-------------------------------------------------------------------------- def update_cursor_rect if @index >= 0 n = $game_temp.choice_start + @index self.cursor_rect.set(8, n * 32, @cursor_width, 32) else self.cursor_rect.empty end end end
| |
| | | Invité Invité
| Sujet: Re: Image dans message de chara Mar 11 Sep 2007, 17:47 | |
| Bonjour, ce script est par défaut dans rpg maker xp, c'est ton script de message avancé qu'il demandait je crois :D |
| | | Invité Invité
| Sujet: Re: Image dans message de chara Mar 11 Sep 2007, 18:20 | |
| oui exact, merci Nooby ^^, il me faut la classe Window_Message qui est rédéfini dans le script que tu as rajouté avant main et que tu utilises. Après il faut repèrer les substitutions de bout de texte du message que l'on tape dans l'évènement "afficher un message" comme ici dans la classe par défaut de RPG Maker XP que tu as affiché on a : - Code:
-
text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] } pour substituer "\V[i]" avec la valeur de la variable "i". Dans - Code:
-
text.gsub!(/\\ .../ tu as "\\" qui correspond à la substitution de "\". Voilà comment je souhaiterais analyser la méthode refresh de la classe Window_Message. |
| | | Omega Arma Jongleur Itinérant
Nombre de messages : 67 Age : 33 Projet(s) en cours : FF : Heaven's & Darkness's Processus (experimental) Niveau Rpg Maker : Novice mais bon mappeur Jeux Préférés : Gears of War, Final Fantasy, Zelda, etc... Date d'inscription : 23/08/2007
| Sujet: Re: Image dans message de chara Mer 12 Sep 2007, 14:50 | |
| euh j'ai rien compris ^^' tu pourrai m'expliquer sa en francais | |
| | | Invité Invité
| Sujet: Re: Image dans message de chara Mer 12 Sep 2007, 17:34 | |
| Jveux pas te discréditer danichou, mais à la limite, oméga tu devrai tester le script posté, je penses que ça sera plus rapide pour toi :D |
| | | Invité Invité
| Sujet: Re: Image dans message de chara Mer 12 Sep 2007, 19:36 | |
| Je suis d'accord avec Noobynou, au lieu de se prendre la tête à modifier le script que tu utilises, il est plus rapide d'utiliser celui proposé par nooby. |
| | | Omega Arma Jongleur Itinérant
Nombre de messages : 67 Age : 33 Projet(s) en cours : FF : Heaven's & Darkness's Processus (experimental) Niveau Rpg Maker : Novice mais bon mappeur Jeux Préférés : Gears of War, Final Fantasy, Zelda, etc... Date d'inscription : 23/08/2007
| Sujet: Re: Image dans message de chara Dim 16 Sep 2007, 11:04 | |
| ok mais ou faut il repartir les scripts que tu ma fourni nooby ? car j'ai essayer plusieur truc et le jeux refuse de se lancer | |
| | | Invité Invité
| Sujet: Re: Image dans message de chara Dim 16 Sep 2007, 11:55 | |
| C'est un seul et même script l'ami !
Suffit de tout coller à la suite, en bas tu as les commentaires en vert, prend mon msn si t'as besoin. |
| | | Contenu sponsorisé
| Sujet: Re: Image dans message de chara | |
| |
| | | | Image dans message de chara | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |
|