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

Script Bulle Comme dans les BD

 
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: 14/06/2007 13:15:46    Sujet du message: Script Bulle Comme dans les BD Répondre en citant

Vous remplacez tout le contenu de votre 'Window_Message' par ceci:
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
    if @comic !=nil
     @comic.dispose
     @comic = nil
   end
 end
 #Comic Script
def GRmens_calc(x, y, w_size, text)
  self.x = 700
  rsl_size = w_size + 32
   h_size = 64
   rsl_x = [[x - rsl_size / 2, 0].max, 640 - rsl_size].min
   if y <= 96
     rsl_y = [[y - 16, 0].max, 480 - 116].min
   else
     rsl_y = [[y - 116, 0].max, 480 - 116].min
   end
   
   if x >= 608
     ind_x = x - 16
     ind_name = "ind_se"
   else
     ind_x = x + 8
     ind_name = "ind_so"
   end
   
   if y <= 96
     ind_y = rsl_y - 7
     ind_name = "ind_no"
   else
     ind_y = rsl_y + 61
   end
   
   if x >= 608 and y <= 96
     ind_name = "ind_ne"
   end
   
   @comic = Window_GRmens.new (rsl_x, rsl_y, rsl_size, ind_x, ind_y, ind_name, text)
 end

  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  def refresh
    self.contents.clear
    self.contents.font.color = normal_color
    self.contents.font.name = "Arial"
    self.contents.font.size = 20
    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" }
       #--------event
if (/\\[Nn]pc\[(.+?)\]/.match(last_text)) != nil
       event_id = $1
       x = $game_map.events[$1.to_i].screen_x
       y = $game_map.events[$1.to_i].screen_y
       text.sub!(/\\[Nn]pc\[(.*?)\]/) { "" }
       w_size = self.contents.text_size(text).width
       GRmens_calc(x, y, w_size, text)
     end
     #---------player
     if (/\\[Pp]lr/.match(last_text)) != nil
       x = $game_player.screen_x
       y = $game_player.screen_y
       text.sub!(/\\[Pp]lr/) { "" }
       w_size = self.contents.text_size(text).width
       GRmens_calc(x, y, w_size, text)
     end
      # "\\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


Et vous créez un nouveau script au dessus de 'Main' que vous appelez 'Bulle' et dans lequel vous collez ceci:

Code:
class Window_GRmens < Window_Selectable
 
#--------------------------------------------------------------------------

 def initialize(rsl_x, rsl_y, rsl_size, ind_x, ind_y, ind_name, text)
   super(rsl_x, rsl_y, rsl_size, 64)
   self.contents = Bitmap.new(self.width - 32, self.height - 32)
   self.windowskin = RPG::Cache.windowskin("comic_skin")
   w = self.contents.width
   h = self.contents.height
   self.contents.font.name ="Arial"
   self.contents.font.size = 20
   self.contents.font.color = text_color(9)
   self.contents.draw_text(0, 0, w, h, text)
   @ind = Sprite.new
   @ind.bitmap = RPG::Cache.picture(ind_name)
   @ind.x = ind_x
   @ind.y = ind_y
   @ind.z = 101
 end
 #--------------------------------------------------------------------------
 def dispose
   self.contents = nil
   @ind.dispose
   super
 end
end


Pour faire s'aficher les bulles, c'est simple, faites comme si vous vouliez afficher un message simple, mais rajoutez devant:

-Pour le héro: "\plr"
Exemple:
\plrSalut, ça va?

-Pour un evenement: "\npc[numéro de l'event]"
Exemple (En admettant que votre event porte le numero 009 (affiché en haut à gauche de votre fenêtre d'évenement):
\npc[009]ça va bien merci et toi?

Les Ressources:
A mettre dans Picture:





Et dans Windowskin:


De base, l'ecriture que vous verrez s'inscrire sera blanche, ensuite, à vous de choisir la couleur que vous donnerez à vos textes! Cela se passe dans "Window_Base" à la ligne 65 de base la valeur est : (255, 255, 255, 255), ce qui donne du blanc, pour obtenir du noir inscrivez à la place: (0, 0, 0, 255).
[/code]
_________________
DarkSquall = Deimos = Arktall


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








MessagePosté le: 14/06/2007 13:15:46    Sujet du message: Publicité

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

Gardien du royaume


Hors ligne

Inscrit le: 08 Avr 2007
Messages: 260
Localisation: Je sais pu!!
Date de naissance: 07/06/1991
Point(s): 304
Moyenne de points: 1,17

MessagePosté le: 14/06/2007 13:57:07    Sujet du message: Script Bulle Comme dans les BD Répondre en citant

J'adore ce script, c'est un de mes préférés lol, et merci de faire vivre ce forum^^
_________________
Bien le bonjour de la part de la plus folle des saucisse!
Venez tous sur ce site, RPG Maker et Cie!


Revenir en haut
Visiter le site web du posteur MSN
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: 14/06/2007 14:23:58    Sujet du message: Script Bulle Comme dans les BD Répondre en citant

C'est tout naturel le seul truc que je reproche à ce script c'est qu'on ne peut pas faire de choix ixdé
_________________
DarkSquall = Deimos = Arktall


Revenir en haut
Visiter le site web du posteur MSN
Flog

Gardien du royaume


Hors ligne

Inscrit le: 08 Avr 2007
Messages: 260
Localisation: Je sais pu!!
Date de naissance: 07/06/1991
Point(s): 304
Moyenne de points: 1,17

MessagePosté le: 14/06/2007 14:31:11    Sujet du message: Script Bulle Comme dans les BD Répondre en citant

ixdé, oui c'est un peu chiant, mais en même temps, pourquoi faire des choix? La meilleure tactique, c'est de foncer dans le tas lol^^
_________________
Bien le bonjour de la part de la plus folle des saucisse!
Venez tous sur ce site, RPG Maker et Cie!


Revenir en haut
Visiter le site web du posteur MSN
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: 14/06/2007 17:28:07    Sujet du message: Script Bulle Comme dans les BD Répondre en citant

Arf, y'a ps moyen de le modifier ? les choix c'est quand même important, même quand tu bourrine, faut choisir comment... ^^
_________________
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
Flog

Gardien du royaume


Hors ligne

Inscrit le: 08 Avr 2007
Messages: 260
Localisation: Je sais pu!!
Date de naissance: 07/06/1991
Point(s): 304
Moyenne de points: 1,17

MessagePosté le: 15/06/2007 11:42:58    Sujet du message: Script Bulle Comme dans les BD Répondre en citant

Il suffirait de modifier le script pour que ça les affiche sur le côté... je reagrderais cet aprèm si je vois comment faire.
_________________
Bien le bonjour de la part de la plus folle des saucisse!
Venez tous sur ce site, RPG Maker et Cie!


Revenir en haut
Visiter le site web du posteur MSN
Chedy

Citoyen


Hors ligne

Inscrit le: 10 Oct 2007
Messages: 31
Date de naissance: 15/06/1993
Projet RPG Maker: Swing Stars
Point(s): 26
Moyenne de points: 0,84

MessagePosté le: 12/10/2007 15:38:11    Sujet du message: Script Bulle Comme dans les BD Répondre en citant

je pense que les liens sont morts... Triste
_________________


Savez vous planter Windows, à la mode à la mode!


Revenir en haut
MSN
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: 12/10/2007 16:05:59    Sujet du message: Script Bulle Comme dans les BD Répondre en citant

En effet, ils sont mort, cependant tu peux faire sans, suffit de créer ses propres ressources,
le windowskin s'appellera :
"comic_skin"
et les images (les bulles) :
"ind_ne"
"ind_so"
"ind_no"
"ind_se"

voilà, c'est tout ce que je sais, car moi je fais autrement... (sans vraiment de script)

j'espère que je t'ai un peu aider Confu
_________________
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
Chedy

Citoyen


Hors ligne

Inscrit le: 10 Oct 2007
Messages: 31
Date de naissance: 15/06/1993
Projet RPG Maker: Swing Stars
Point(s): 26
Moyenne de points: 0,84

MessagePosté le: 12/10/2007 16:50:29    Sujet du message: Script Bulle Comme dans les BD Répondre en citant

Je les remets :
Le Windowskin



Les images à placer dans pictures









Voilà Sourire
_________________


Savez vous planter Windows, à la mode à la mode!


Revenir en haut
MSN
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: 13/10/2007 16:00:11    Sujet du message: Script Bulle Comme dans les BD Répondre en citant

Ah bah voilà, je m'étais pas trompé ^^
Mais où a tu repris les images ?
_________________
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
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: 13/10/2007 22:34:00    Sujet du message: Script Bulle Comme dans les BD Répondre en citant

Il a dû les reprendre d'un autre site ou forum enn tout cas je t'en remercie, ça peut montrer que tu commences à t'investir à la vie du forum Sourire
_________________
DarkSquall = Deimos = Arktall


Revenir en haut
Visiter le site web du posteur MSN
Contenu Sponsorisé








MessagePosté le: 12/12/2017 15:43:49    Sujet du message: Script Bulle Comme dans les BD

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.