|
sansanb | Making est un grand mot | Administrateur |  | 143 messages postés |
| Posté le 25-04-2005 à 17:29:25
| Bonjour Ce script permet d'afficher les messages lettre par lettre comme dans rpg maker 2000 et 2003. Ouvrez l'éditeur de script, puis remplacer le script Window_Message par celui qui suit. [citation=Snake]Bonjour Ce script permet d'afficher les messages lettre par lettre comme dans rpg maker 2000 et 2003. Ouvrez l'éditeur de script, puis remplacer le script Window_Message par celui qui suit.
Citation :
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 @update_text = true @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 @update_text = true @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 @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 @text.gsub!(/\/) { "00" } @text.gsub!(/[Cc][([0-9]+)]/) { "01[#{$1}]" } @text.gsub!(/[Gg]/) { "02" } 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_text if @text != nil 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 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 == "n" 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 self.contents.draw_text(4 + @x, 32 * @y, 40, 32, c) @x += self.contents.text_size(c).width $game_system.se_play($data_system.decision_se) return 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 @update_text = false #š end # ------------------------------------ def update super if @fade_in self.contents_opacity = 255 if @input_number_window != nil @input_number_window.contents_opacity = 255 end if self.contents_opacity == 255 @fade_in = false end 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 @update_text update_text return end if $game_temp.choice_max == 0 self.pause = true end if self.pause == true && Input.dir4 != 0 terminate_message 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 terminate_message if self.pause == true 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 = 0 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 |
Voila... BY SNAKE OF http://forum.alloforum.com/sujet-6492-0-101814-0-0-1-377073-1.html
Message édité le 25-04-2005 à 17:31:25 par sansanb |
|
zubrus | Chronicle of Time | Membre |  | 88 messages postés |
| Posté le 04-05-2005 à 01:35:49
| je en comprend pas se que se sripte est suposer faire... |
|
lerua | Le flic le plus sympa | Modérateur |  | 195 messages postés |
| Posté le 04-05-2005 à 07:07:25
| il fait que le messages s'affiche lettre pas lettre (par exemple lerua : ca fait : l apres le apres ler, etc.) tu comprends ? par contre moi ca me fait ca : l0e0r0u0a c'est normal ?
-------------------- you should remember : a bad maker is not a maker ! cliquez ici ----> |
|
zubrus | Chronicle of Time | Membre |  | 88 messages postés |
| Posté le 04-05-2005 à 12:07:57
| non moi je ne veux pas faire sa se n,est pas utile |
|
sansanb | Making est un grand mot | Administrateur |  | 143 messages postés |
| Posté le 04-05-2005 à 12:32:22
| Non, ce n'est pas normal Lerua :s en tout cas moi ca me le fait pas ! si qunlqu'un d'autres sur ce forum utlilsé ce script AVEZ VOUS LE MEME PROBLEME QUE LERUA ?
Message édité le 04-05-2005 à 12:33:07 par sansanb |
|
zubrus | Chronicle of Time | Membre |  | 88 messages postés |
| Posté le 14-05-2005 à 22:00:59
| je vous est du je n'utilise pas se script..lol |
|
|