Kingdom Ultimate Index du Forum


 
 Portail du forumPortail FAQFAQ  Radio KURadio KU  RechercherRechercher   MembresMembres   GroupesGroupes   S’enregistrerS’enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

La charte du forumCharte du forum   Votez du forumVoter pour le forum

Belle fenêtre de dialogue

 
Poster un nouveau sujet   Répondre au sujet    Kingdom Ultimate Index du Forum -> RPG Maker -> Registre des scripts -> Scripts pour les messages
Sujet précédent :: Sujet suivant  
Auteur Message
Arktall

Administrateur


Hors ligne

Inscrit le: 12 Mar 2007
Messages: 1 328
Date de naissance: 15/06/1991
Projet RPG Maker: Eternal Adventure
Point(s): 1 371
Moyenne de points: 1,03

MessagePosté le: 10/07/2007 13:43:41    Sujet du message: Belle fenêtre de dialogue Répondre en citant

Ce scripts permet d'avoir une belle fenêtre de dialogue,personalisable
Auteur:inconu
*Scripts tester et valider par moi


Code:
Crée un nouveau scripts au dessus de "Main" et coller se scripts Scripts(1) #================================== # Window_Message #------------------------------- # The message window. #================================== class Window_Message < Window_Selectable attr_accessor :autoclosetime attr_accessor :op #------------------------------- # Object Initialization #------------------------------- def initialize super(80+64, 336, 480, 128)#(80, 304, 480, 160) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font.size = 24 self.contents.font.name = $fontface self.visible = false self.z = 9998 @fade_in = false @fade_out = false @contents_showing = false @cursor_width = 0 @autoclosetime = -1 @op = 255 @refreshflag = false self.active = false self.index = -1 @update_text = true self.windowskin = nil end #------------------------------- # Garbage Collection #------------------------------- def dispose terminate_message $game_temp.message_window_showing = false if @input_number_window != nil @input_number_window.dispose end super end #------------------------------- # Message Termination Process #------------------------------- 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 # ***ccoa*** #if there was a face showing, make it invisible if $message_showing != nil self.windowskin = RPG::Cache.windowskin("001-Blue01") @message.visible = false end if $face_showing != nil self.windowskin=nil @face.visible = false end end #------------------------------- # Refresh #------------------------------- def refresh self.contents.clear self.contents.font.color = normal_color self.contents.font.name =$fontface self.contents.font.size = 24 self.windowskin = nil @x = @y = 0 @cursor_width = 0 @autoclosetime = -1 @refreshflag = true @lineheight = 32 @active = "" @a = "" @centerflag = false @rightflag = false @bannerflag = false @update_text = true @text_skip = false # ***ccoa*** # face for the message box @face = Sprite.new @face.visible = true @message = Sprite.new @message.visible = true 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 @text.gsub!(/\\/) { "00" } @text.gsub!(/\[Cc][([0-9]+)]/) { "01[#{$1}]" } @text.gsub!(/\[Gg]/) { "02" } @text.gsub!(/\[Ii][([0-9]+)]/) { "03[#{$1}]" } @text.gsub!(/\[Ff][([0-9]+)]/) { "04[#{$1}]" } @text.gsub!(/\[Aa][([0-9]+)]/) { "05[#{$1}]" } @text.gsub!(/\[Xx]/) { "06" } @text.gsub!(/\[Rr]/) { "07" } @text.gsub!(/\[Dd]/) { "11" } @text.gsub!(/\[Ss][([0-9]+)]/) { "23[#{$1}]" } @text.gsub!(/\[Bb]/) { "17" } @text.gsub!(/\[Ww][([0-9]+)]/) { "14[#{$1}]" } @text.gsub!(/\[Mm][([0-9]+)]/) { "15[#{$1}]" } @text.gsub!(/\[Oo][([0-9]+)]/) { "16[#{$1}]" } @text.gsub!(/\[Jj][([0-9]+)]/) { "13[#{$1}]" } @text.gsub!(/\[Hh][([0-9]+)]/) { "21[#{$1}]" } @text.gsub!(/\[Kk][([0-9]+)]/) { "22[#{$1}]" } end def update_text if @text != nil while ((c = @text.slice!(/./m)) != nil) if c == "00" c = "\" end #while ((c = @text.slice!(/./m)) != nil) if c == "00" c = "\" end if c == "01" @text.sub!(/[([0-9]+)]/, "") color = $1.to_i if color >= 0 and color <= 7 self.contents.font.color = text_color(color) end next end if c == "02" 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 == "03" @text.sub!(/[([0-9]+)]/, "") item_sub = $1.to_i c = $data_items[item_sub].name l = self.contents.text_size(c).width draw_item_name($data_items[item_sub], @x, @y * 32 + 1) @x = @x + l + 24 next end if c == "04" @text.sub!(/[([0-9]+)]/, "") fontize = $1.to_i case fontize when 1 self.contents.font.name = "Arial" when 2 self.contents.font.name = "High Tower Text" when 3 self.contents.font.name = "Tw Cen MT" when 4 self.contents.font.name = "Tahoma" end next end if c == "05" @text.sub!(/[([0-9]+)]/, "") @autoclosetime = $1.to_i next end if c == "06" @centerflag = true next end if c == "07" @rightflag = true next end if c == "11" self.contents.font.name = $fontface self.contents.font.size = 24 self.contents.font.color = normal_color @lineheight = 32 next end if c == "14" @text.sub!(/[([0-9]+)]/, "") w_sub = $1.to_i c = $data_weapons[w_sub].name l = self.contents.text_size(c).width bitmap = RPG::Cache.icon($data_weapons[w_sub].icon_name) self.contents.blt(@x+4, @y * 32+ 4, bitmap, Rect.new(0, 0, 24, 24)) @x += 28 self.contents.draw_text(@x+4, 32 * @y, l+32, @lineheight, c) @x = @x + l next end if c == "15" @text.sub!(/[([0-9]+)]/, "") a_sub = $1.to_i c = $data_armors[a_sub].name l = self.contents.text_size(c).width bitmap = RPG::Cache.icon($data_armors[a_sub].icon_name) self.contents.blt(@x+4, @y * 32+ 4, bitmap, Rect.new(0, 0, 24, 24)) @x += 28 self.contents.draw_text(@x+4, 32 * @y, l+32, @lineheight, c) @x = @x + l next end if c == "16" @text.sub!(/[([0-9]+)]/, "") @op = $1.to_i next end if c == "17" @bannerflag = true next end if c == "18" @text.sub!(/[([0-9]+)]/, "") jump = $1.to_i @x += jump next end if c == "21" @text.sub!(/[([0-9]+)]/, "") @lineheight = $1.to_i next end if c == "22" @text.sub!(/[([0-9]+)]/, "") skill_sub = $1.to_i c = $data_skills[skill_sub].name l = self.contents.text_size(c).width bitmap = RPG::Cache.icon($data_skills[skill_sub].icon_name) self.contents.blt(@x+4, @y * 32+ 4, bitmap, Rect.new(0, 0, 24, 24)) @x += 28 self.contents.draw_text(@x+4, 32 * @y, l+32, @lineheight, c) @x = @x + l next end if c == "23" @text.sub!(/[([0-9]+)]/, "") bigness = $1.to_i self.contents.font.size = bigness next end if c == "n" if @centerflag == true @x = 448 - @x @x = @x / 2 self.contents.draw_text(@x, 32 * @y, 448-@x, @lineheight, @a) end if @rightflag == true @x = 448 - @x self.contents.draw_text(@x, 32 * @y, 448-@x, @lineheight, @a) end if @bannerflag == true @x = 448 - @x @x = @x / 2 self.contents.draw_text(@x, 44, 448-@x, @lineheight, @a) end @a = "" @centerflag = false @rightflag = false @bannerflag = false if @y >= $game_temp.choice_start @cursor_width = [@cursor_width, @x].max end @y += 1 @x = 0 if @y >= $game_temp.choice_start @x = 8 end next end # ***ccoa*** if $message_showing != nil #draw the face, then add the text to one side of it @message.bitmap= RPG::Cache.picture("/" + $message_showing) @message.x = 18#18 @message.y = 340#340 @message.z = 9998 @message.visible = true else @message.bitmap= nil @message.x = 18 @message.y = 340 @message.z = 9998 @message.visible = false end #draw the face, then add the text to one side of it if $face_showing != nil @face.bitmap = RPG::Cache.picture("/" + $face_showing) @face.x = 30 @face.y = 320 #@face.x = 20 #@face.y = 344 @face.z = 9999 @face.opacity = 255 @face.visible = true if @centerflag == false && @rightflag == false && @bannerflag == false self.contents.draw_text(4 + @x, 32 * @y, 40, @lineheight, c) @x += self.contents.text_size(c).width else @a += c @x += self.contents.text_size(c).width end if $game_temp.in_battle self.y = 16 @face.y= 0 @message.y=16 else case $game_system.message_position when 0 # 上 @face.y= 0 @message.y=22 when 1 # 中 @face.y=138 @message.y=160 when 2 # 下#独自変更箇所 数値弄り @face.y=314 @message.y= 336 end end if !@text_skip $game_system.se_play($data_system.decision_se) return end else @face.bitmap = nil @face.x = 20 @face.y = 344 @face.z = 9999 @face.visible = false # just put in the text if @centerflag == false && @rightflag == false && @bannerflag == false self.contents.draw_text(4 + @x, 32 * @y, 40, @lineheight, c) @x += self.contents.text_size(c).width else @a += c @x += self.contents.text_size(c).width end if !@text_skip $game_system.se_play($data_system.decision_se) return end end end end self.opacity = 0 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 #draw the face, then add the text to one side of it @message.bitmap= RPG::Cache.picture("MessageFace/" + $message_showing) @message.x = 18#18 @message.y = 340#340 @message.z = 9998 @message.visible = true @face.bitmap = RPG::Cache.picture("MessageFace/" + $face_showing) @face.x = 30 @face.y = 320 #@face.x = 20 #@face.y = 344 @face.z = 9999 @face.opacity = 255 @face.visible = true 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 @update_text = false end end #------------------------------- # Reset the window in response to changes in the position or # transparency #------------------------------- 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 = 336 end end if $game_system.message_frame == 0 self.opacity = 255 else self.opacity = 0 end self.back_opacity = 160 end #------------------------------- # Frame Update #------------------------------- def update super if @refreshflag && @fade_in == false self.contents_opacity = @op end if @autoclosetime == 0 @autoclosetime = -1 terminate_message end if @autoclosetime >= 1 @autoclosetime -= 1 end if @fade_in self.contents_opacity +=999999999 if @input_number_window != nil @input_number_window.contents_opacity += 24 end if self.contents_opacity >= @op @fade_in = false end return end if @input_number_window != nil @input_number_window.update @message.visible = true @face.visible = true # ?? 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 @update_text if Input.trigger?(Input::C) @text_skip = true end update_text return 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 @op = 255 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 #------------------------------- # Updates the cursor rectangle. #------------------------------- def update_cursor_rect if @index >= 0 n = $game_temp.choice_start + @index # ***ccoa*** # make sure the cursor appears in the correct spot for choice messages if $message_showing != nil self.cursor_rect.set(8, n * 32, @cursor_width, 32) self.windowskin= RPG::Cache.windowskin("001-Blue01") end else self.cursor_rect.empty end end end puis renplacer le scripts "Main" par celui ci Scripts(2) #================================= #Main #------------------------------------------------------------------ #================================= begin $showm = Win32API.new 'user32', 'keybd_event', %w(l l l l), '' unless $DEBUG $showm.call(18,0,0,0) $showm.call(13,0,0,0) $showm.call(13,0,2,0) $showm.call(18,0,2,0) end # Font used in windows $defaultfonttype = $fontface = $fontname = Font.default_name = "Times New Roman" # Font size used $defaultfontsize = $fontsize = Font.default_size = 18 $face_showing = nil $message_showing = nil Graphics.freeze # シーンオブジェクト (タイトル画面) を作成 $scene = Scene_Title.new # $scene が有効な限り main メソッドを呼び出す while $scene != nil $scene.main end Graphics.transition(20) rescue Errno::ENOENT # 例外 Errno::ENOENT を補足 # ファイルがオープンできなかった場合、メッセージを表示して終了する filename = $!.message.sub("No such file or directory - ", "") print("File #{filename} was not found.") end


Fonctionnement

Importer cette image(que vous pouvez retoucher a votre quiz)dans le dossier "picture"(Outils-->gestionnaire de ressources-->Graphic/Picture)


Importer aussi votre face dans le dossier Picture, qui devra être de108 de Largeur et 138 de Hauteur.
Si votre face est mal positionner, redimensionner la pour quel se place correctement.

Puis:
Code:
Crée un évènement-->=[b]insérer scripts[/b] et mètre ce ci :

$face_showing = '[b]nom_de_votre_face[/b]'
$message_showing = '[b]nom_de_votre_windowskin[/b]'


Ensuite, le message qu'il doit dire.

Et en toute fin de l'évènement, insérer scripts et mettre ceci:
Code:
$face_showing = nil
$message_showing = nil


Chez moi ça marche sans, mais metter le quand on c'est jamais.

Il y a des options comme le scripts "Advanced Message", pour personaliser le texte, met je ne les est pas, si quel qu'un les connais, qu'il les poste.
Cependant vous pouvez toujours regarder dans le scripts, il y a pas mal de chose personnalisable.
_________________
DarkSquall = Deimos = Arktall


Revenir en haut
Visiter le site web du posteur MSN
Publicité








MessagePosté le: 10/07/2007 13:43:41    Sujet du message: Publicité

PublicitéSupprimer les publicités ?
Revenir en haut
Sin

Modérateur


Hors ligne

Inscrit le: 18 Avr 2007
Messages: 1 696
Localisation: Sud de la France, sur mon PC
Date de naissance: 19/01/1990
Projet RPG Maker: Fantasy Theater, Kanigu Montain, Lost Myths
Point(s): 1 749
Moyenne de points: 1,03

MessagePosté le: 10/07/2007 13:47:13    Sujet du message: Belle fenêtre de dialogue Répondre en citant

Oué, c'est assez jolie... mais, où est l'image ? elle ne s'affiche pas, y'a rien, même pas un lien... Triste
_________________
Tourmenté de la Keyblade...
** Plus de deux ans sur KU !! et déjà + de 1600 posts !! **
Darwin is my best <3


Revenir en haut
MSN
Contenu Sponsorisé








MessagePosté le: 20/10/2017 03:14:36    Sujet du message: Belle fenêtre de dialogue

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Kingdom Ultimate Index du Forum -> RPG Maker -> Registre des scripts -> Scripts pour les messages Toutes les heures sont au format GMT
Page 1 sur 1

Sauter vers:  



 Partenaires 
Votez pour le forum! Xooit.com :: Top Forums Musiques Ost/midi, wallpapers, screenshots, vid os, emulation, gifs, fanarts, astuces, solutions tous les secrets de Final Fantasy d voiler ! La page Facebook du forum oniromancie, tout l'univers de rpg maker en français! Forum RPG Maker XP Forum RPG Maker XP

Devenir Partenaire ?

Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation

© KingdomUltimate.xooit.com 2008-2010
Toute reproduction totale ou partielle est interdite sans l'autorisation d'un membre de l'équipe.