Advertisement
Skyloftian_Link

Esteem - NameBox [Name Color Edit]

Sep 19th, 2016
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.32 KB | None | 0 0
  1. #===============================================================================
  2. # Esteem - NameBox [Name Color Edit]
  3. #-------------------------------------------------------------------------------
  4. # Por: Skyloftian
  5. #===============================================================================
  6. # > Versão 1.1.s
  7. #-------------------------------------------------------------------------------
  8. # > Atualizações:
  9. # - 19/09/16 (v1.1.s) : Versão especial criada para selecionar cores do nome
  10. # - 19/09/16 (v1.1) : Incompatibilidade com Window_ChoiceList corrigida
  11. # - 19/09/16 (v1.0) : Código Otimizado
  12. # - 18/09/16 (v0.1) : Concluído
  13. #-------------------------------------------------------------------------------
  14. # > Termos de Uso:
  15. # - O uso é livre em qualquer tipo de projeto.
  16. # - Os créditos não são obrigatórios, mas sinta-se livre para creditar-me.
  17. # - O script não deve ser postado em outro lugar, caso deseje isso, favor me
  18. # contatar antes.
  19. # - O script pode ser modificado por sua conta e risco, mas não me responsabi-
  20. # lizo por quaisquer erros que venham a ocorrer posteriormente.
  21. #===============================================================================
  22. # > Função:
  23. # - Este script exibe uma caixa de nome (seja do personagem que está falando
  24. # ou o que você quiser) juntamente da caixa de mensagens.
  25. #-------------------------------------------------------------------------------
  26. # > Instruções:
  27. # - O script exibe automaticamente a caixa de nome quando a switch configurada
  28. # estiver ON. Ou seja, ela não aparecerá caso a switch esteja OFF.
  29. # - O nome que aparecerá na janela é definido por meio de uma variável que
  30. # pode ser configurada logo abaixo.
  31. # - Para definir o nome que deve aparecer, vá em Controle de Variáveis e a
  32. # configure da seguinte maneira:
  33. #
  34. # #----------------------------------------------------------------------------#
  35. # | #CONTROLE DE VARIÁVEIS# |
  36. # | Variável |
  37. # | (O) Indivídual : [ID da Variável Configurada] |
  38. # | ( ) Lote : [ ] ~ [ ] |
  39. # | Operação |
  40. # | (O) Definir ( ) Somar ( ) Subtrair ( ) Multiplicar ( ) Dividir ( ) Resto|
  41. # | Operando |
  42. # | ( ) Constante [ ] |
  43. # | ( ) Variável [ ] |
  44. # | ( ) Aleatório [ ] ~ [ ] |
  45. # | ( ) Dados do [ ] |
  46. # | Jogo |
  47. # | (O) Script ["Nome" ] |
  48. # #----------------------------------------------------------------------------#
  49. #
  50. # De maneira em que:
  51. # ID da Variável Configurada = ID de uma variável que você deve configurar
  52. # logo abaixo, na aba Configurações.
  53. # "Nome" = O nome que deve aparecer dentro da janela.
  54. # OBS: Não se esqueça das aspas.
  55. #
  56. # - Para exibir o nome de algum personagem da party, use o seguinte comando:
  57. # $game_actors[ID].name
  58. # Sendo ID o número do personagem no DataBase.
  59. #
  60. # - Para mudar a posição(alinhamento) da caixa de nome, basta mudar o valor
  61. # da variável definida para isso.
  62. # Os valores podem ser: 0 - Esquerda || 1 - Centro || 2 - Direita
  63. # OBS: Caso a variável receba qualquer outro valor a janela se alinhará au-
  64. # tomaticamente na esquerda.
  65. # - A caixa de nome se ajusta automaticamente a posição da janela de mensagem
  66. # seja na parte inferior, no meio, ou na parte superior da tela.
  67. #===============================================================================
  68. # > Dúvidas e afins? Acesse: www.centrorpg.com
  69. #===============================================================================
  70. module Esteem
  71. module NameBox
  72. #===========================================================================
  73. # > Configurações:
  74. # - Aqui você encontrará todas as configurações que podem ser realizadas
  75. # no script.
  76. #---------------------------------------------------------------------------
  77.  
  78. # > Configurações da Janela e Texto:
  79.  
  80. NB_WINDOWSKIN = "Window" # Windowskin da NameBox.
  81.  
  82. NB_FONT_NAME = "Bulgaria Moderna Pro" # Fonte do texto/nome.
  83. NB_FONT_SIZE = 23 # Tamanho da fonte.
  84. NB_BOLD = false # O nome deve estar em negrito?
  85. # true = sim || false = não
  86. NB_ITALIC = false # O nome deve estar em itálico?
  87. # true = sim || false = não
  88. NB_SHADOW = true # O nome deve ter sombra?
  89. # true = sim || false = não
  90.  
  91. # > Configurações de Switch e Variáveis de Controle:
  92.  
  93. ON_SWITCH = 01 # Switch que ativa ou desativa a
  94. # namebox.
  95. NAME_VAR = 01 # Variável que carregará o nome
  96. # que será exibido na namebox.
  97. POS_VAR = 02 # Variável que define a posição(ali-
  98. # nhamento) da namebox.
  99. RED = 03 # Variável RED
  100. GREEN = 04 # Variável GREEN
  101. BLUE = 05 # Variável BLUE
  102.  
  103. end #NameBox
  104. end #Esteem
  105. #===============================================================================
  106. # > Fim das Configurações
  107. # - Aqui termina a área configurável do script e começa o código. Não recomen-
  108. # do que o altere, isso é, a menos que tenha certeza do que está fazendo.
  109. # - Caso seja destemido o suficiente para ignorar meus alertas e decida alte-
  110. # rar algo no código, aviso logo para que tome cuidado com os updates, pois
  111. # como ele é vindo do Scene_Map, sobrecarrega-lo pode causar lag absurdo du-
  112. # rante o jogo, de forma que seja praticamente impossível sobreviver a ele.
  113. #===============================================================================
  114.  
  115. #=============================================================
  116. # > Window_NameBox
  117. #=============================================================
  118. class Window_NameBox < Window_Base
  119.  
  120. #---------------------------------------------------------
  121. # ~ Inicialização do objeto
  122. #---------------------------------------------------------
  123. def initialize
  124. super(0, 0, width, 50)
  125. self.z = 201
  126. self.openness = 0
  127. window_windowskin
  128. window_contents_config
  129. end
  130.  
  131. #---------------------------------------------------------
  132. # ~ Aquisição da largura da janela
  133. #---------------------------------------------------------
  134. def width
  135. return 150
  136. end
  137.  
  138. #---------------------------------------------------------
  139. # ~ Aquisição da windowskin
  140. #---------------------------------------------------------
  141. def window_windowskin
  142. self.windowskin = Cache.system(Esteem::NameBox::NB_WINDOWSKIN)
  143. end
  144.  
  145. #---------------------------------------------------------
  146. # ~ Aquisição das configurações do texto da janela
  147. #---------------------------------------------------------
  148. def window_contents_config
  149. self.contents.font.name = Esteem::NameBox::NB_FONT_NAME
  150. self.contents.font.size = Esteem::NameBox::NB_FONT_SIZE
  151. self.contents.font.bold = Esteem::NameBox::NB_BOLD
  152. self.contents.font.italic = Esteem::NameBox::NB_ITALIC
  153. self.contents.font.shadow = Esteem::NameBox::NB_SHADOW
  154. end
  155.  
  156. #---------------------------------------------------------
  157. # ~ Atualização da janela e definição de x e y
  158. #---------------------------------------------------------
  159. def update_window(message_y, message_height)
  160. update_openness
  161. define_name
  162. draw_name
  163. num = Esteem::NameBox::POS_VAR
  164. self.x = 0 if $game_variables[num] == 0
  165. self.x = Graphics.width / 2 - 75 if $game_variables[num] == 1
  166. self.x = Graphics.width - 150 if $game_variables[num] == 2
  167. self.y = message_y - self.height if $game_message.position != 0
  168. self.y = message_height if $game_message.position == 0
  169. end
  170.  
  171. #---------------------------------------------------------
  172. # ~ Abrir e fechar janela
  173. #---------------------------------------------------------
  174. def update_openness
  175. open if $game_message.busy? && $game_switches[Esteem::NameBox::ON_SWITCH]
  176. close if !$game_message.busy? || !$game_switches[Esteem::NameBox::ON_SWITCH]
  177. end
  178.  
  179. #---------------------------------------------------------
  180. # ~ Aquisição do nome
  181. #---------------------------------------------------------
  182. def define_name
  183. name = Esteem::NameBox::NAME_VAR
  184. @name = $game_variables[name]
  185. end
  186.  
  187. #---------------------------------------------------------
  188. # ~ Desenhar nome da janela
  189. #---------------------------------------------------------
  190. def draw_name
  191. contents.clear
  192. red = Esteem::NameBox::RED
  193. green = Esteem::NameBox::GREEN
  194. blue = Esteem::NameBox::BLUE
  195. self.contents.font.color = Color.new($game_variables[red], $game_variables[green], $game_variables[blue] , 255)
  196. draw_text(0, 0, 150 - (self.padding * 2), 50 - (self.padding * 2), @name, 1)
  197. end
  198.  
  199. end # NameBox
  200.  
  201. #=============================================================
  202. # > Scene_Map
  203. #=============================================================
  204. class Scene_Map < Scene_Base
  205.  
  206. #---------------------------------------------------------
  207. # ~ Adicionar namebox na Scene_Map
  208. #---------------------------------------------------------
  209. alias :create_nb :create_all_windows
  210. def create_all_windows
  211. create_nb
  212. create_namebox
  213. end
  214.  
  215. #---------------------------------------------------------
  216. # ~ Criar namebox
  217. #---------------------------------------------------------
  218. def create_namebox
  219. @namebox = Window_NameBox.new
  220. end
  221.  
  222. #---------------------------------------------------------
  223. # ~ Adicionar a namebox ao update da Scene_Map
  224. #---------------------------------------------------------
  225. alias :nep_date :update
  226. def update
  227. nep_date
  228. @namebox.update_window(@message_window.y, @message_window.height)
  229. end
  230.  
  231. end #Scene_Map
  232.  
  233. #===============================================================================
  234. # > Nota:
  235. # - Ajuste na posição da janela de esclhas quando a NameBox está posicionada
  236. # na direita da tela.
  237. # - Caso o posicionamento da janea de escolhas não lhe agrade, você pode es-
  238. # ar tentando a sorte e a modificando a seu gosto.
  239. # - Entretanto, como avisado lá em cima, não me responsabilizo por qualquer
  240. # erro durante a modificação do código, tome cuidado, fica a dica.
  241. #===============================================================================
  242.  
  243. #=============================================================
  244. # > Window_ChoiceList
  245. #=============================================================
  246. class Window_ChoiceList < Window_Command
  247.  
  248. #--------------------------------------------------------------------------
  249. # ~ Subscrever o método que atualiza a posição y da janela de escolhas
  250. #--------------------------------------------------------------------------
  251. alias :new_up :update_placement
  252. def update_placement
  253. new_up
  254. @namebox = Window_NameBox.new
  255. var = Esteem::NameBox::POS_VAR
  256. swi = Esteem::NameBox::ON_SWITCH
  257. if $game_variables[var] == 2 && $game_switches[swi]
  258. if $game_message.position == 2
  259. self.y = @message_window.y - height - 50
  260. elsif $game_message.position == 0
  261. self.y = @message_window.y + @message_window.height + 50
  262. else
  263. self.y = @message_window.y + @message_window.height
  264. end
  265. end
  266. end
  267.  
  268. end # Window_ChoiceList
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement