Magicalichigo
Messages : 3283
| Sujet: Le script XP pour l'affichage de faceset [RESOLU] Dim 9 Jan - 17:02 | |
| Bah tout est dans le titre mais bon, c'est pas vraiment une demande d'entraide, enfin si mais non...bref vous allez comprendre :goutte2: Le script pour les fainéants qui affiche directement les facesets dans mes messages sans être obliger de faire un event bah...comment dire...il marche pas tout simplement ^^" Le script en question : - Spoiler:
- Code:
-
#============================================================================== # Window_Message #------------------------------------------------------------------------------ # #==============================================================================
class Window_Message < Window_Selectable #-------------------------------------------------------------------------- # #-------------------------------------------------------------------------- def initialize super(80, 304, 480, 160) self.contents = Bitmap.new(width - 32, height - 32) self.contents.font = Font.new("Arial") self.visible = false self.z = 9998 @fade_in = false @fade_out = false @contents_showing = false @cursor_width = 0 @pic_width = 96 @pic_height = 96 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 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!(/\\[Ww]\[([0-9]+)\]/) do @pic_width = $1.to_i "" end text.gsub!(/\\[Hh]\[([0-9]+)\]/) do @pic_height = $1.to_i "" end text.gsub!(/\\[Ff]\[([\w]+)\]/) do temp = RPG::Cache.picture($1) pic_x = self.contents.width - @pic_width - 10 pic_y = self.contents.height / 2 - @pic_height / 2 dest = Rect.new(pic_x,pic_y,@pic_width, @pic_height) src = Rect.new(0,0,temp.width, temp.height) self.contents.stretch_blt(dest, temp, src) "" end
text.gsub!(/\\\\/) { "\000" } text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001#{$1}" } text.gsub!(/\\[Gg]/) { "\002" }
while ((c = text.slice!(/./m)) != nil)
if c == "\000" c = "" end
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
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 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 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
Déjà il y a un problème à la ligne 114 du script que voici : - Code:
-
c = "" Bon jusque là on se dit "Il est où le problème ?" Bah mettez le sur votre projet et vous obtiendrai ca : - Spoiler:
Et s’enchaînera avec ce gentil message : - Spoiler:
(Le genre de message qu'on aime tous voir quand on test son projet c'est certain ) J'ai donc essayé de remédier à celà en rajoutant...un espace ! Ouais youpi trop cool Ca donne ça : - Code:
-
c = "\ " Sauf que le script il marche quand même pas, on a certes plus le super message qui annonce une erreur, mais aucune commande ne marche et donc le script pour afficher un faceset...il affiche rien c'est très pratique Alors bon comme ça fait une heure que je trafique se satané script, j'aimerais un peu d'aide parce que sinon jvais finir par devenir folle moi (Pas la peine de me dire "Fais le en event", j'ai pas envie de faire un trcu pour lequel j'ai le script même si j'avoue que pour l'instant il sert à rien )
Dernière édition par Magicalichigo le Dim 9 Jan - 17:48, édité 1 fois | |
|
Kaila
Messages : 4254
| Sujet: Re: Le script XP pour l'affichage de faceset [RESOLU] Dim 9 Jan - 17:31 | |
| Essaies plutôt avec ça: - Code:
-
c = "\\" EDIT: Putain, y a des antislashs qui se barrent quand on post. Il faut bien qu'il y en ai 2. | |
|
Magicalichigo
Messages : 3283
| Sujet: Re: Le script XP pour l'affichage de faceset [RESOLU] Dim 9 Jan - 17:43 | |
| Merci Kaila t'es le meilleur ! J'avais pas pensé à en mettre 2 quelle cloche :goutte2: | |
|
Aenki
Messages : 6953
| Sujet: Re: Le script XP pour l'affichage de faceset [RESOLU] Dim 9 Jan - 17:48 | |
| 5 fois =>[] | |
|
Kaila
Messages : 4254
| Sujet: Re: Le script XP pour l'affichage de faceset [RESOLU] Dim 9 Jan - 17:51 | |
| Je vais pas non plus toutes les mettre, hein, ça risquerait de devenir lourd, à force XD - Magicalichigo a écrit:
- J'avais pas pensé à en mettre 2 quelle cloche :goutte2:
Cloche, non, il fallait le savoir... Enfin, de rien | |
|
Magicalichigo
Messages : 3283
| Sujet: Re: Le script XP pour l'affichage de faceset [RESOLU] Dim 9 Jan - 17:53 | |
| Je vais aller éditer le script de Tinleval pour que personne d'autre n'ai ce problème | |
|
Kjata
Messages : 2934
| Sujet: Re: Le script XP pour l'affichage de faceset [RESOLU] Dim 9 Jan - 18:06 | |
| Excellente initiative Magi ! C'est que trop souvent qu'on tombe sur des scripts qui ne marchent pas, les corriger c'est le genre de chose qui sera bien vu. | |
|
Magicalichigo
Messages : 3283
| Sujet: Re: Le script XP pour l'affichage de faceset [RESOLU] Dim 9 Jan - 18:10 | |
| Tjaak > Tout à fait, sur oniro plusieurs fois j'ai eu envie de corriger les scripts buger que sur une seule ligne mais pas possible d'éditer... J'ai le pouvoir de l'édition, autant s'en servir pour corriger les petits bugs que je vois | |
|
Aenki
Messages : 6953
| Sujet: Re: Le script XP pour l'affichage de faceset [RESOLU] Dim 9 Jan - 18:14 | |
| | |
|
Contenu sponsorisé
| Sujet: Re: Le script XP pour l'affichage de faceset [RESOLU] | |
| |
|