Sujet n°8316
Posté par Swani le 30 Oct - 00:49 (2010)
Titre : [Ok]Message sans cadre !
Bonjour, j'ai encore un problème  :gloups:


Alors quand je lis par exemple un message le cadre du dessous ne s'affiche pas !
Help mi !





Merci d'avance !

Posté par IamTheAdic le 30 Oct - 11:19 (2010)
Salut,
As-tu supprimer des images dans le dossier picture ?

Posté par Swani le 31 Oct - 02:23 (2010)
Non j'ai regarder sa ne vien pas de sa !


Edit : Il y'a une solution ?! Car c'est très embêtant !

Posté par IamTheAdic le 31 Oct - 11:31 (2010)
Salut,
J'aurai que tu m'upload ton projet, pour voir le problème, si tu veux bien ...

Posté par Pαlвσlѕку le 31 Oct - 11:54 (2010)
Je vois aussi que le texte est en blanc, donc tu as du touché au script Window_Message pour changer la couleur.
Et c'est dans ce script que l'image est aussi gérée.

Le problème doit venir de là.
Soit l'image n'est plus appelée ; ou sinon l'opacité est réglée sur 0 et l'image dans ce cas est invisible.
Il est aussi possible que tu es changé la position de l'image, qui pourrait être maintenant hors-écran.

Beaucoup d'hypothèse mais impossible pour le moment de dire laquelle est bonne.
Si tu commençais par poster ton script Window_Message, là on pourrait commencer à t'aider.

Posté par Suicune31 le 31 Oct - 12:22 (2010)
Tu as installer ma correction le MAPINTRO ? si oui faut activer l'interrupteur x).
 Sinon et bien je sert a rien 42

Posté par Swani le 31 Oct - 14:01 (2010)
Quel interrupteur ?

Posté par IamTheAdic le 31 Oct - 14:03 (2010)
Poste ton script Window_Message, pour qu'on t'aider un peu ...

Posté par Swani le 31 Oct - 14:13 (2010)
Le voila : 

 
Code:

#==============================================================================
# ■ Window_Message
# Pokemon Script Project - Krosk
# 18/07/07
# Modifier par Palbolsky
#-----------------------------------------------------------------------------
# Scène à ne pas modifier de préférence
#-----------------------------------------------------------------------------
#
#-----------------------------------------------------------------------------

class Window_Message < Window_Selectable
  #--------------------------------------------------------------------------
  #
  #--------------------------------------------------------------------------
  def initialize
    # Redéfinition taille du cadre
    super(138, 33, 499, 71)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.visible = false
    self.z = 9998
    self.opacity = 0
    @dummy = Sprite.new     
     if $game_switches[20] == true 
     @dummy.bitmap = RPG::Cache.picture($MSG) 
    end 
    @dummy.visible = false
    @dummy.x = 15
    self.x = 9
    @dummy.z = 9997
    @fade_in = false
    @fade_out = false
    @contents_showing = false
    @cursor_width = 0
    @speed_defilement = $SPEED_MSG
    self.active = false
    self.index = -1
    $fontspecial = "Pokemon Emerald"    
  end   
  #--------------------------------------------------------------------------
  #
  #--------------------------------------------------------------------------

  def reset_window
    # Redéfinition
    if $game_temp.in_battle
      self.y = 159
      @dummy.y = 177
    else
      case $game_system.message_position
      when 0  # 上
        self.y = 6
        @dummy.y = 36
      when 1  # 中
        self.y = 166
        @dummy.y = 160
      when 2  # Redéfinition position du cadre inférieur
        self.y = 140
        @dummy.y = 158
      end
    end
    if $game_system.message_frame == 0
      #self.opacity = 255
      @dummy.opacity = 196
    else
      #self.opacity = 0
      @dummy.opacity = 0
    end
    self.back_opacity = 255  
  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
        if @speed_defilement != 0
          refresh
        end
      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)       
         Audio.se_play("Audio/SE/Bip.ogg")
        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     
      $game_variables[15] = 1
      $game_variables[14] = 2
      @contents_showing = true
      $game_temp.message_window_showing = true
      reset_window
      if @speed_defilement == 0
        refresh
      end
      self.visible = true
      @dummy.visible = true       
      Graphics.frame_reset      
      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
      @dummy.opacity = 0
      #self.opacity -= 48
      if @dummy.opacity == 0 #self.opacity == 0
        self.visible = false
        @dummy.visible = false       
        @fade_out = false       
        $game_temp.message_window_showing = false       
        $game_variables[15] = 0 if not $game_variables[15] == 2
      end     
      return
    end
  end 
 
  #--------------------------------------------------------------------------
  #
  #--------------------------------------------------------------------------
  def refresh   
    self.contents.clear   
    self.contents.font.color = Color.new(82,82,90)
    self.contents.font.name = $fontspecial
    self.contents.font.size = 15  
    text_count = 0
    x = y = 0
    push = false
    @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] }
        # MODIF
        text.gsub!(/\\[Pp]\[([0-9]+)\]/) { $string[$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" }
      # "\\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 = 255
            @gold_window.back_opacity = 255
          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
        # 文字を描画      
        draw_text(4 + x, 16 * y, 12, 32, c)
        text_count += 1
        Input.update
        if Input.trigger?(Input::C)          
          push = true         
        end
        if text_count == @speed_defilement and @speed_defilement != 0 and push == false
          Graphics.update
          #$game_map.update
          $scene.update#spriteset.update
          text_count = 0
        end
        # 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 update_cursor_rect
    if @index >= 0
      n = $game_temp.choice_start + @index
      self.cursor_rect.set(0, n * 32, 32, 32)
    else
      self.cursor_rect.empty
    end
  end
end

class Interpreter
  def setup_choices(parameters)
    # Redéfinition
    # choice_max に選択肢の項目数を設定
    $game_temp.choice_max = parameters[0].size
    # message_text に選択肢を設定
    for text in parameters[0]
      # Espaces supplémentaires
      $game_temp.message_text += "  " + text + "\n"
    end
    # キャンセルの場合の処理を設定
    $game_temp.choice_cancel_type = parameters[1]
    # コールバックを設定
    current_indent = @list[@index].indent
    $game_temp.choice_proc = Proc.new { |n| @branch[current_indent] = n }
  end
end 


Posté par Suicune31 le 31 Oct - 14:20 (2010)
bin voila ><. tu as installer mon truc x).

Active l'interrupteur 20 des le démarrage.
Si tu utilise une save existante avant l'instalation, active l'interrupteur 20 depuis un évent ou le menu debug
et sauvegarde.

Posté par Swani le 31 Oct - 14:23 (2010)
Merci Suicune ! Mais on peux pas désinstaller ?

Posté par Suicune31 le 31 Oct - 14:25 (2010)
Si, supprime la ligne 24
Code:

 if $game_switches[20] == true 

Et supprime la ligne 26
Code:

 end  


Posté par Swani le 31 Oct - 14:31 (2010)
Merci infiniment Suicune.

Posté par Suicune31 le 31 Oct - 14:32 (2010)
Tout le plaisir est pour moi  42 .