Registre-se gratuitamente e tenha o mundo do RPG na sua mão!
 
PortalInícioCalendárioGaleriaFAQBuscarRegistrar-seGruposConectar-se

Compartilhe | 
 

 Slipknot's Advanced Message Script

Ver o tópico anterior Ver o tópico seguinte Ir em baixo 
AutorMensagem
Shadow
Cientista
Cientista
avatar

Número de Mensagens : 44
Data de inscrição : 06/02/2008

Estatísticas
Alertas Alertas:
0/5  (0/5)
Pontos Pontos: 0
Minhas Moedas! Minhas Moedas!: 195

MensagemAssunto: Slipknot's Advanced Message Script   Qua 6 Fev - 16:23:39

ta aki o script
o script e ultrapassa olimite por isso vou dividir em varia partes
Código:
#-----------------------------------------------------------------
# ¦ Slipknot's Advance Message System ¦
#-----------------------------------------------------------------
#  Imperio Turbidos Script - We are the Best Empire
#  - Added the window over event - Revised by Angeal
#  -- mostra foto  dentro da janela
# - Display Adicionado o ícone
# - Adicionado o item, arma, armadura e habilidade ícone display
# - Adicionado o herói classe nome
# - Corrigido algumas poucas coisas
#------------------------------------------------- ----------------
# - Picture Show (acima) por Slipknot
# - Auto Redimensionar por Slipknot
# - Diferentes Mostrar Texto por Slipknot
# - Texto Itálico Negrito e por Slipknot
# - Class Hero Nome por Slipknot
# - Icon Display por Slipknot
# - Número de Arma, Armor & Skill ícone por Dubealex *
# - Picture Show (em) por Dubealex *
# - Nome Box por Dubealex *
# - Tamanho do texto por Dubealex *
# - Texto font pelo Dubealex *
# - Janela Over Evento por Dubealex *
# - Outline Texto de Alestian Story *
# - Shadow Texto de Alestian Story *
# * Editado por Slipknot
#-----------------------------------------------------------------
# Set the default text display
$default_text = 0
#-----------------------------------------------------------------
class Window_Message < Window_Selectable
#-----------------------------------------------------------------
  def initialize
    super(65,299,510,175)
    self.contents = Bitmap.new(width-32,height-32)
    self.visible = false
    self.z = 9998
    @contents_showing = @fade_in = @fade_out = false
    @cursor_width = 0
    self.active = false
    self.index = -1
    self.opacity = 0
    # Change it to change the pictures folder for the messages
    @path = "Graphics/Pictures/Message/"
    @back = Window_Base.new(self.x,self.y,self.width,self.height)
    @back.visible = false
  end
#-----------------------------------------------------------------
  def dispose
    terminate_message
    $game_temp.message_window_showing = false
    @back.dispose
    if @input_number_window != nil
      @input_number_window.dispose
    end; super
  end
#-----------------------------------------------------------------


Última edição por em Qua 6 Fev - 16:29:34, editado 1 vez(es)
Voltar ao Topo Ir em baixo
Ver perfil do usuário
Shadow
Cientista
Cientista
avatar

Número de Mensagens : 44
Data de inscrição : 06/02/2008

Estatísticas
Alertas Alertas:
0/5  (0/5)
Pontos Pontos: 0
Minhas Moedas! Minhas Moedas!: 195

MensagemAssunto: Re: Slipknot's Advanced Message Script   Qua 6 Fev - 16:24:27

ta aki a segunda parte

Código:

  alias sk_terminate_message terminate_message
  def terminate_message
    sk_terminate_message
    if @name_box != nil
    @name_box.dispose
    @name_box = nil
    end
    if @name_box_text  != nil
      @name_box_text.dispose
      @name_box_text = nil
    end
    if @picture != nil
      @picture.dispose
      @picture = nil
    end
  end
#-----------------------------------------------------------------
  def refresh
    self.contents.clear
    # Setting the text options to default
    self.contents.font.name = $defaultfonttype
    self.contents.font.size = 22
    self.contents.font.bold = false
    self.contents.font.italic = false
    case $default_text
    when 0 then disp_text
    when 1 then disp_text(false,true)
    when 2 then disp_text(true) end
    # Setting some variables to 0
    @cursor_width = color = x = y = sx = 0
    x=8 if $game_temp.choice_start == 0
    if $game_temp.message_text != nil
      text = $game_temp.message_text
      begin
        last_text = text.clone
        # Show Variables Value
        text.gsub!(/\\[Vv]\[([0-9]+)\]/) { $game_variables[$1.to_i] }
      end until text == last_text
      # Show Hero Name
      text.gsub!(/\\[Nn]\[([0-9]+)\]/) do
        $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].name : ""
      end
      # Show Hero Class Name
      text.gsub!(/\\[Cc]lass\[([0-9]+)\]/) do
        $game_actors[$1.to_i] != nil ? $game_actors[$1.to_i].class_name : ""
      end
      name_box = face = picture = over_event = false
      # Name box
      if (/\\[Nn]a\[(.+?)\]/.match(text)) != nil
        name_box = true
        name_text = $1
        text.sub!(/\\[Nn]a\[(.*?)\]/){""}
      end
      # Picture
      if (/\\[Pp]ic\[(.+?)\]/.match(text)) != nil
        picture = true
        pic_name = $1
        text.sub!(/\\[Pp]ic\[(.*?)\]/){""}
      end
      # Face
      if (/\\[Ff]ace\[(.+?)\]/.match(text)) != nil
        @face = true
        face_name = $1
        text.sub!(/\\[Ff]ace\[(.*?)\]/){""}
      end
      # Window over event
      if (/\\[Pp]\[([-1,0-9]+)\]/.match(text)) != nil
        over_event = true
        event = $1.to_i
        text.sub!(/\\[Pp]\[([-1,0-9]+)\]/){""}
      end
      # "\" display
      text.gsub!(/\\\\/){"\000"}
      # Text Color
      text.gsub!(/\\[Cc]\[([0-9]+)\]/){"\001[#{$1}]"}
      # Show Gold Window
      text.gsub!(/\\[Gg]/){"\002"}
      # Text size
      text.gsub!(/\\[Tt][Ss]\[([0-9]+)\]/){"\003[#{$1}]"}
      # Text font
      text.gsub!(/\\[Ff]ont\[(.+?)\]/){"\004[#{$1}]"}
      # Text different display
      text.gsub!(/\\[Tt]ext\[([0-9]+)\]/){"\005[#{$1}]"}
      # SlipKnot's Icon
      text.gsub!(/\\[Ii]con\[(.+?)\]/){"\006[#{$1}]"}
      # Dubealex's Icon
      text.gsub!(/\\[Ii]i{([IiWwAaSs]?)}\[([0-9]+)\]/){change_icon($1,$2.to_i)}
      # Bold font
      text.gsub!(/\\[Bb]/){"\007"}
      # Italic font
      text.gsub!(/\\[Ii]/){"\010"}
      # Array with all the lines width
      stxt = [0,0,0,0]
      @back.height = 32
      icon = ""; val = 0
      x = 112 if @face
      while ((c = text.slice!(/./m)) != nil)
        if c == "\000" then c = "\\" end
        if c == "\001"
          text.sub!(/\[([0-9]+)\]/, "")
          color = $1.to_i
          self.contents.font.color = text_color(color) if color >= 0 and color <= 7
          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 then @gold_window.y = 192
            else @gold_window.y = self.y >= 128 ? 32 : 384 end
            @gold_window.opacity = @back.opacity
            @gold_window.back_opacity = @back.back_opacity
          end; next
        end
        if c == "\003"
          text.sub!(/\[([0-9]+)\]/, "")
          self.contents.font.size = [[$1.to_i,8].max,32].min
          next
        end
        if c == "\004"
          text.sub!(/\[(.+?)\]/, "")
          self.contents.font.name = $1.to_s
          next
        end
        if c == "\005"
          text.sub!(/\[([0-9]+)\]/, "")
          case $1.to_i
          when 0 then disp_text
          when 1 then disp_text(false,true)
          when 2 then disp_text(true) end
          next
        end
        if c == "\006"
          text.sub!(/\[(.+?)\]/, "")
          icon = $1.to_s
          val += 24; c = ""
        end
        if c == "\007"
          if self.contents.font.bold
            self.contents.font.bold = false
          else self.contents.font.bold = true end
          next
        end
        if c == "\010"
          if self.contents.font.italic
            self.contents.font.italic = false
          else self.contents.font.italic = true end
          next
        end
        if c == "\011"
          icon = $gold_name
          val += 24; c = ""
        end
        if c == "\013"
          text.sub!(/\[(.*?)\]/,"")
          icon = $1.to_s
          val += 24; c = ""
        end
        if c == "\n"
          @cursor_width = [@cursor_width,x].max if y >= $game_temp.choice_start
          y += 1; x = sx = 0
          sx = x = 112 if @face
          x,sx = 8,14 if y >= $game_temp.choice_start
          next
        else stxt[y] += (self.contents.text_size(c).width+val) end
        @back.height = (y*32)+64
        if icon != ""
          self.contents.blt(4+x,32*y+5,RPG::Cache.icon(icon),Rect.new(0,0,24,24))
          x += 24; val,icon = 0,""
        end
        if $outline_text and !$shadow_text
          draw_text_outline(4+x,32*y,40,32,c,color)
        elsif $shadow_text and !$outline_text
          draw_text_shadow(4+x,32*y,40,32,c,color)
        else
          self.contents.font.color = text_color(color)
          self.contents.draw_text(4+x,32*y,40,32,c)
        end
        x += self.contents.text_size(c).width
      end
      @back.width = stxt.max+42+sx
      men_pos
    end
    if $game_temp.choice_max > 0
      @item_max = $game_temp.choice_max
      self.active,self.index = true,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
      @back.height += 32
      width = [@back.width,(@input_number_window.width-16)].max
      @back.width = width; men_pos
    end
    if over_event
      if $game_map.events != nil
        if event <= 0 then ch = $game_player
        else ch = $game_map.events[event] end
        fx = [[ch.screen_x-@back.width/2,4].max,636-@back.width].min
        fy = [[ch.screen_y-(@back.height+48),4].max,476-@back.height].min
        self.x = @back.x = fx
        self.y = @back.y = fy
      end
    end
    if picture
      px = self.x + @back.width
      @picture = Sprite.new
      @picture.bitmap = RPG::Cache.load_bitmap(@path,pic_name)
      @picture.x = px - @picture.bitmap.width
      @picture.y = self.y - @picture.bitmap.height
    end
    if name_box
      nbx,nby = self.x,self.y-15
      w = self.contents.text_size(name_text).width+12
      @name_box = Window_Base.new(nbx,nby,w,32)
      @name_box.z = self.z+1
      nbx += 6; nby += 4
      @name_box_text  = Name_Box_Text.new(nbx,nby,name_text)
      @name_box_text.z = self.z+2
    end
    if @face
      face = RPG::Cache.load_bitmap(@path,face_name)
      @back.height <= 128 ? fy = 0 : fy = ((@back.height-128)/2)
      self.contents.blt(0,fy,face,Rect.new(0,0,96,96))
      @back.height = 128 if @back.height <= 128
      men_pos
      @face = false
    end
  end
#-----------------------------------------------------------------
  def update
    super
    if @fade_in
      self.contents_opacity += 24
      if @input_number_window != nil
        @input_number_window.contents_opacity += 24
      end
      @fade_in = false if self.contents_opacity == 255
      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 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
      sk_visible
      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
      @back.opacity -= 48
      if @back.opacity == 0
        sk_visible(false)
        @fade_out = false
        $game_temp.message_window_showing = false
      end; return
    end
  end
#-----------------------------------------------------------------
  def change_icon(option,index)
    option == nil ? option = "" : nil
    option.downcase!
    case option
    when "i" then s = $data_items[index]
    when "w" then s = $data_weapons[index]
    when "a" then s = $data_armors[index]
    when "s" then s = $data_skills[index] end
    return sprintf("\013[%s]%s",s.icon_name,s.name) unless s.name == nil
  end
#-----------------------------------------------------------------
  def disp_text(w1=false,w2=false)
    $outline_text,$shadow_text = w1,w2
  end
#-----------------------------------------------------------------
  def sk_visible(s=true)
    self.visible,@back.visible = s,s
  end
#-----------------------------------------------------------------
  def men_pos
    if $game_temp.in_battle then self.y = 96 - @back.height/2
    else
      case $game_system.message_position
      when 0 then self.y = 96 - @back.height/2
      when 1 then self.y = 240 - @back.height/2
      when 2 then self.y = 384 - @back.height/2 end
    end
    self.x = 320 - @back.width/2
    if @input_number_window != nil
      @input_number_window.y = (self.y+$game_temp.num_input_start*32)
      @input_number_window.x = self.x+8
      @input_number_window.x = self.x+8+112 if @face
    end
    @back.x,@back.y = self.x,self.y
  end
#-----------------------------------------------------------------
  def reset_window
    men_pos
    if $game_system.message_frame == 0 then @back.opacity = 255
    else @back.opacity = 0 end
    @back.back_opacity = 160
  end
#-----------------------------------------------------------------
end
#-----------------------------------------------------------------
class Name_Box_Text < Window_Base
#-----------------------------------------------------------------
  def initialize(x,y,text)
    super(x-16,y-16,text.size*12+32,56)
    init; self.opacity = 0
    w,h = self.contents.width,self.contents.height
    if $outline_text and !$shadow_text then draw_text_outline(0,0,w,h,text)
    elsif $shadow_text and !$outline_text then draw_text_shadow(0,0,w,h,text)
    else self.contents.draw_text(0,0,w,h,text) end
  end
#-----------------------------------------------------------------
end
#-----------------------------------------------------------------
class Window_Base < Window
#-----------------------------------------------------------------
  def draw_text_outline(x,y,wid,hei,str,col=0,ali=0)
    self.contents.font.color = Color.new(0,0,0,255)
    self.contents.draw_text(x+1,y,wid,hei,str,ali)
    self.contents.draw_text(x-1,y,wid,hei,str,ali)
    self.contents.draw_text(x,y+1,wid,hei,str,ali)
    self.contents.draw_text(x,y-1,wid,hei,str,ali)
    self.contents.font.color = text_color(col)
    self.contents.draw_text(x,y,wid,hei,str,ali)
  end
#-----------------------------------------------------------------
  def draw_text_shadow(x,y,wid,hei,str,col=0,ali=0)
    self.contents.font.color = Color.new(0,0,0,192)
    self.contents.draw_text(x+1,y+1,wid,hei,str,ali)
    self.contents.font.color = Color.new(0,0,0,96)
    self.contents.draw_text(x+2,y+2,wid,hei,str,ali)
    self.contents.font.color = text_color(col)
    self.contents.draw_text(x,y,wid,hei,str,ali)
  end
#-----------------------------------------------------------------
  def init(win=self,type=0,size=0,wid=0,hei=0)
    swid = (wid == 0 ? win.width-32 : wid)
    shei = (hei == 0 ? win.height-32 : hei)
    win.contents = Bitmap.new(swid,shei)
    type = $defaultfonttype if type == 0
    size = $defaultfontsize if size == 0
    win.contents.font.name = type
    win.contents.font.size = size
  end
#-----------------------------------------------------------------
end
#-----------------------------------------------------------------

download- 4shared.com/file/35156682/89c03eae/Slipknot_MS.html

e a screen
Voltar ao Topo Ir em baixo
Ver perfil do usuário
Admin Broderman
Rei
Rei
avatar

Número de Mensagens : 168
Idade : 21
Localização : Na sua tela...
Data de inscrição : 18/01/2008

Estatísticas
Alertas Alertas:
0/5  (0/5)
Pontos Pontos: 0
Minhas Moedas! Minhas Moedas!: 99999

MensagemAssunto: Re: Slipknot's Advanced Message Script   Qua 6 Fev - 16:28:49

Interessante. Bom, eu vou testar aew e depois já vejo. Obrigado mesmo por compartilhar! rabbit Muito importante pra nós!

EDIT: Ponha os créditos de onde você tirou SEM MENSIONAR O LINK.
Voltar ao Topo Ir em baixo
Ver perfil do usuário http://kingrpg.forumsrpg.net
Shadow
Cientista
Cientista
avatar

Número de Mensagens : 44
Data de inscrição : 06/02/2008

Estatísticas
Alertas Alertas:
0/5  (0/5)
Pontos Pontos: 0
Minhas Moedas! Minhas Moedas!: 195

MensagemAssunto: Re: Slipknot's Advanced Message Script   Qua 6 Fev - 16:30:31

De nada.
Agradeça ao askalani, pk ele e k me deu o link.
Voltar ao Topo Ir em baixo
Ver perfil do usuário
Admin Broderman
Rei
Rei
avatar

Número de Mensagens : 168
Idade : 21
Localização : Na sua tela...
Data de inscrição : 18/01/2008

Estatísticas
Alertas Alertas:
0/5  (0/5)
Pontos Pontos: 0
Minhas Moedas! Minhas Moedas!: 99999

MensagemAssunto: Re: Slipknot's Advanced Message Script   Qua 6 Fev - 16:31:46

Link doq? do fórum ou do script?
Voltar ao Topo Ir em baixo
Ver perfil do usuário http://kingrpg.forumsrpg.net
Shadow
Cientista
Cientista
avatar

Número de Mensagens : 44
Data de inscrição : 06/02/2008

Estatísticas
Alertas Alertas:
0/5  (0/5)
Pontos Pontos: 0
Minhas Moedas! Minhas Moedas!: 195

MensagemAssunto: Re: Slipknot's Advanced Message Script   Qua 6 Fev - 16:32:03

do forum
Voltar ao Topo Ir em baixo
Ver perfil do usuário
Conteúdo patrocinado




MensagemAssunto: Re: Slipknot's Advanced Message Script   

Voltar ao Topo Ir em baixo
 
Slipknot's Advanced Message Script
Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo 
Página 1 de 1

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
King RPG :: RPG Maker XP :: Scripts (RGSS)-
Ir para: