Accueil du SiteAccueil du Site  AccueilAccueil  FAQFAQ  RechercherRechercher  MembresMembres  GroupesGroupes  ConnexionConnexion  S'enregistrerS'enregistrer  




Partagez | 
 

 [XP] Message qui disparait au bout de X frames

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Elekami
Fondateur
Fondateur
avatar

Masculin
Messages postés : 19067
Date d'inscription : 19/07/2008
Jauge LPC :
100 / 100100 / 100





















MessageSujet: [XP] Message qui disparait au bout de X frames   Dim 20 Jan 2013 - 17:07

L'autre fois y a des gens qui se demandaient comment zapper automatiquement des messages sur RMXP.
Bah ça se fait avec ce script de Sihn (Chaotic Blue).

Ce script permet donc d'afficher un message (via la commande "Afficher un message") qui disparait au bout d'un certain nombre de frames de votre choix.
Il suffit d'inclure dans le message en question \t[nb_de_frames] et le tour est joué.

Code:
#===============================================================================
# ■ Message qui dure X frames
#===============================================================================
# Auteur : Sihn
# Version : 1.3
#-------------------------------------------------------------------------------
# Permet d'afficher un message qui s'efface automatiquement au bout d'un
# certain temps.
#===============================================================================
# Utilisation:
#
# Créé un nouveau message contenant \T[X]
# Remplacez X par un nombre de votre choix. Ce nombre sera la durée d'affichage
# du message en frames. (20 frames vaut environ 1 secondes)
# Bien entendu, les messages ne contenant pas cette commandes seront "normaux".
# Note: Durant un message temporaire, les commandes de l'événement affichant le
# message ne seront pas bloquées. (comme si vous utilisiez une commande "Jouée
# une animation", par exemple.)
# Cependant, vous pouvez faire en sorte que les commandes restent bloquées
# comme avant en remplaçant "false" ci-dessous par "true".
TIME_MESSAGE_STOP = false
#===============================================================================

class Game_Temp
  attr_accessor :time_showing
 
  alias time_showing_initialize initialize
  def initialize
    @time_showing = 0
    time_showing_initialize
  end
end

class Window_Message < Window_Selectable
  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
      text.gsub!(/\\\\/) { "\000" }
      text.gsub!(/\\[Cc]\[([0-9]+)\]/) { "\001[#{$1}]" }
      text.gsub!(/\\[Gg]/) { "\002" }
      text.gsub!(/\\[Tt]\[([0-9]+)\]/) { "\003[#{$1}]" }
      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 == "\003"
          text.sub!(/\[([0-9]+)\]/, "")
          $game_temp.time_showing = $1.to_i * 2
          $game_temp.time_showing *= -1 if $game_temp.time_showing < 0
          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 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 = $game_temp.time_showing == 0
      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 $game_temp.time_showing == 0 or $game_temp.choice_max > 0
        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
      else
        $game_temp.time_showing -= 1
        if $game_temp.time_showing == 0
          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
      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
end

class Interpreter
  alias message_waiting_update update
  def update
    if $game_temp.time_showing          != 0 and
      $game_temp.choice_cancel_type    == 0 and
      $game_temp.num_input_variable_id == 0 and
      not TIME_MESSAGE_STOP
      @message_waiting = false
    end
    message_waiting_update
  end
end

Citation :
- Mode d'emploi -
Note: un résumé du mode d'emploi se trouve au début du script.
Tout d'abord, copier-coller ce script au dessus de Main, et nommez-le comme bon vous semble.
Ensuite, créé un message via la commande "Afficher un message", et dans ce message, incluez ceci: \t[nb_de_frames] en remplaçant nb_de_frames par le nombre de frames durant lesquelles le messages doit rester affichés.
Par exemple: "\t[40]Votre message" affichera "Votre message" durant 40 frames (soit 2 secondes environs).
Attention!
Lorsque vous faites un message temporaire, votre héros ne peut pas bouger (comme avec les messages normaux), mais l'événement, lui, continue son cours! (comme il le ferait avec une commande "Afficher une animation", par exemple)
Mais vous pouvez changer cela au début du script, à la ligne 21. Remplacez false par true.

Vous l'aurez remarqué, aucune commande "Insérer un script" n'est nécessaire.

_____________________
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.lepalaiscreatif.net https://twitter.com/EleKoptes
Invité
Invité
avatar


MessageSujet: Re: [XP] Message qui disparait au bout de X frames   Dim 20 Jan 2013 - 17:33

Elek qui poste des scripts. xD
Merci du partage. =)
Revenir en haut Aller en bas
Elekami
Fondateur
Fondateur
avatar

Masculin
Messages postés : 19067
Date d'inscription : 19/07/2008
Jauge LPC :
100 / 100100 / 100





















MessageSujet: Re: [XP] Message qui disparait au bout de X frames   Dim 20 Jan 2013 - 17:40

Je m'ajoute 3 points quand même. Very Happy

_____________________
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.lepalaiscreatif.net https://twitter.com/EleKoptes
Jin
Ancien staffeux
Ancien staffeux
avatar

Masculin
Messages postés : 8556
Date d'inscription : 08/12/2010
Jauge LPC :
69 / 10069 / 100

G 1 petit zizi Very Happy
Nn C pa vré Sad











MessageSujet: Re: [XP] Message qui disparait au bout de X frames   Dim 20 Jan 2013 - 23:11

je l'ai et il marche bof bof... il est pas compatible avec tout les script custom message

_____________________
Je soutiens :
~Kioresse~
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Ti-Max
Membre V.I.P.
Membre V.I.P.
avatar

Masculin
Messages postés : 2246
Date d'inscription : 11/07/2012
Jauge LPC :
80 / 10080 / 100

















MessageSujet: Re: [XP] Message qui disparait au bout de X frames   Lun 21 Jan 2013 - 0:24

Comme celui de 'Universal Message System' je suppose. xD
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Elekami
Fondateur
Fondateur
avatar

Masculin
Messages postés : 19067
Date d'inscription : 19/07/2008
Jauge LPC :
100 / 100100 / 100





















MessageSujet: Re: [XP] Message qui disparait au bout de X frames   Lun 21 Jan 2013 - 0:28

Ouais c'est ça le problème. :'(

_____________________
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.lepalaiscreatif.net https://twitter.com/EleKoptes
Mimiko
Ninja (niveau 5)
Ninja (niveau 5)
avatar

Féminin
Messages postés : 229
Date d'inscription : 31/08/2011
Jauge LPC :
14 / 10014 / 100


MessageSujet: Re: [XP] Message qui disparait au bout de X frames   Ven 25 Jan 2013 - 0:42

merci pour le partage ele ^^

_____________________
*************************************************************************************
C'est en apprenant,
que on peu faire quelque chose de bien en making ^^"
**************************************************************************************


Le passé, l'imagination, le rêve, le monde, le Présent, la réalité, la vie, le futur....
Il faut suivre son chemin pour qu'un jour les rêve se rélisent.
**************************************************************************************
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://miko-projet-cda-iriee.blogspot.fr/
Contenu sponsorisé




MessageSujet: Re: [XP] Message qui disparait au bout de X frames   

Revenir en haut Aller en bas
 
[XP] Message qui disparait au bout de X frames
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» urgent ! comment on s'enlève un bout de verre dans le pied ?
» message breton
» Comment écrire un message sur le forum ?
» duplication message
» je suis presque au bout du rouleau....

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Le Palais Créatif :: ~ PARTAGE ~ :: Scripts et plugins :: RPG Maker XP :: Autres-
Sauter vers: