Advertisement
Gabriel_Nascimento

** Esteem - Center Message

Jun 22nd, 2018
310
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Ruby 3.08 KB | None | 0 0
  1. #==============================================================================
  2. #  ** Esteem - Center Message
  3. #==============================================================================
  4. # ► Script por: Skyloftian
  5. #------------------------------------------------------------------------------
  6. # ► Atualizações: 22/06/18 - v1.0 - Código finalizado e revisado
  7. #==============================================================================
  8. # ► Descrição: Possibilita centralizar o texto da janela de mensagens.
  9. #
  10. # * O código identifica e ignora os caracteres de todos os comandos de mensagem
  11. #   fazendo com que a centralização do texto seja perfeita, mesmo possuindo em
  12. #   sua composições caracteres que não são mostrados na mensagem final.
  13. #   Ex:\c[n], \., \$, etc...
  14. #==============================================================================
  15. # ► Instruções: Para ativar o efeito do script basta ativar a switch que você
  16. #   determinará nas configurações abaixo.
  17. #==============================================================================
  18. # ► Configurações
  19. #==============================================================================
  20. module Esteem
  21.   module CenterMessage
  22.    
  23.     CM_SWITCH = 1 # Defina o ID da siwtch desajada
  24.  
  25.   end # CenterMessage
  26. end # Esteem
  27. #==============================================================================
  28. # ► Início do Código | Não mude nada caso não entenda
  29. #==============================================================================
  30. class Window_Message < Window_Base
  31.  
  32.   alias :esteem_cm_new_page :new_page
  33.   def new_page(text, pos)
  34.     esteem_cm_new_page(text, pos)
  35.     if $game_switches[Esteem::CenterMessage::CM_SWITCH]
  36.       @text_lines = []
  37.       @icon = 0
  38.       @line = 0
  39.       pos[:x] = calc_text_to_center_x(text, @line)
  40.       pos[:y] = calc_text_to_center_y(@text_lines.size)
  41.     end
  42.   end
  43.  
  44.   alias :esteem_cm_process_new_line :process_new_line
  45.   def process_new_line(text, pos)
  46.     if $game_switches[Esteem::CenterMessage::CM_SWITCH]
  47.       @line += 1
  48.       pos[:new_x] = calc_text_to_center_x(text, @line) if @text_lines.size > 1
  49.     end
  50.     esteem_cm_process_new_line(text, pos)
  51.   end
  52.  
  53.   def calc_text_to_center_x(text, line)
  54.     text.each_line {|line| insert_line(line)}
  55.     x_pos = (((self.width - (standard_padding * 2)) - @text_lines[line]) / 2)
  56.     return x_pos
  57.   end
  58.  
  59.   def calc_text_to_center_y(line)
  60.     y_pos = (((self.height - (standard_padding * 2)) - (line * line_height)) / 2)
  61.     return y_pos
  62.   end
  63.  
  64.   def insert_line(line)
  65.     line.scan(/(\ei\[\d+\])/i) {|icon| @icon += 1}
  66.     line.gsub!(/\n/) {""}
  67.     line.gsub!(/(\e\w\[\d+\])/i) {""}
  68.     line.gsub!(/\e\G/i) {""}
  69.     line.gsub!(/\e\$/i) {""}
  70.     line.gsub!(/\e\./i) {""}
  71.     line.gsub!(/\e\{/i) {""}
  72.     line.gsub!(/\e\}/i) {""}
  73.     line.gsub!(/\e\|/i) {""}
  74.     line.gsub!(/\e\!/i) {""}
  75.     line.gsub!(/\e\>/i) {""}
  76.     line.gsub!(/\e\</i) {""}
  77.     line.gsub!(/\e\^/i) {""}
  78.     size = text_size(line).width + (@icon * 24)
  79.     @text_lines.push(size)
  80.   end
  81.  
  82. end # Window_Message
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement