DaxSoft

Sensor Message 1.0

Mar 6th, 2014
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.02 KB | None | 0 0
  1. #==============================================================================
  2. # • Sensor Menssage
  3. #==============================================================================
  4. # Autor: Dax
  5. # Versão: 1.0
  6. # Site: www.dax-soft.weebly.com
  7. # Requerimento: Dax Core
  8. #==============================================================================
  9. # • Descrição:
  10. #------------------------------------------------------------------------------
  11. # Quando o jogador estiver na área(determinada por você) de um evento,
  12. # irá aparecer um texto por cima da cabeça do evento. Quanto mais o jogador estiver
  13. # longe, mais opaco vai se tornando o texto.
  14. #==============================================================================
  15. # • Como usar: CHAMAR SCRIPT
  16. #------------------------------------------------------------------------------
  17. # sm(id, area, text)
  18. # * id = ID do evento.
  19. # * area = Area do evento.
  20. # * text = Mensagem.
  21. #==============================================================================
  22. Dax.register(:sensor_message, "Dax", 1.0, "06/03/14")
  23. #==============================================================================
  24. # • Rpg::Sensor_Message
  25. #==============================================================================
  26. module Rpg::Sensor_Message
  27. extend self
  28. @sm = []
  29. #----------------------------------------------------------------------------
  30. # • Configurações.
  31. #----------------------------------------------------------------------------
  32. WIDTH = 160 # Largura máxima permitida.
  33. SIZE = 16 # Tamanho da fonte.
  34. NAME = "Arial" # Nome da fonte.
  35. BOLD = true # Negrito na fonte.
  36. OUTLINE = true # Borda na fonte.
  37. SHADOW = true # Sombra na fonte.
  38. COLOR = ColorBasic.default # Cor da fonte.
  39. AREA = 2 # Recomendado que se deixe no 2. AREA - a multiplicação da área, para
  40. # surtir o efeito de opacidade.
  41. #----------------------------------------------------------------------------
  42. # • Fazer.
  43. #----------------------------------------------------------------------------
  44. def make(*args)
  45. return if @sm[args[0].__id__].is_a?(Sensor_Message_Sprite)
  46. @sm[args[0].__id__] = Sensor_Message_Sprite.new(*args)
  47. end
  48. #----------------------------------------------------------------------------
  49. # • Renovar
  50. #----------------------------------------------------------------------------
  51. def dispose
  52. return if @sm.nil?
  53. @sm.each(&:dispose)
  54. end
  55. #----------------------------------------------------------------------------
  56. # • Atualizar.
  57. #----------------------------------------------------------------------------
  58. def update
  59. return if @sm.nil?
  60. @sm.each { |i| i.update unless i.nil? or i.disposed? }
  61. end
  62. end
  63. #==============================================================================
  64. # • Sensor_Message_Sprite
  65. #==============================================================================
  66. class Sensor_Message_Sprite < Sprite
  67. include Rpg::Sensor_Message
  68. #----------------------------------------------------------------------------
  69. # • Inicialização dos objetos.
  70. #----------------------------------------------------------------------------
  71. def initialize(id, sensor, name, add_y=nil)
  72. super([WIDTH, SIZE+2])
  73. @id, @sensor, @name = id, sensor, name || ""
  74. @add_y = add_y || 0
  75. self.x = ($game_map.events[@id].screen_x - (self.width / 2))
  76. self.y = ($game_map.events[@id].screen_y - 56) + @add_y
  77. self.bitmap.font.name = NAME
  78. self.bitmap.font.size = SIZE
  79. self.bitmap.font.bold = BOLD
  80. self.bitmap.font.shadow = SHADOW
  81. self.bitmap.font.outline = OUTLINE
  82. self.bitmap.font.color = COLOR
  83. self.bitmap.draw_text_rect(@name, 1)
  84. opacity_defined
  85. end
  86. #----------------------------------------------------------------------------
  87. # • Renovação dos objetos.
  88. #----------------------------------------------------------------------------
  89. def dispose
  90. self.bitmap.dispose unless self.bitmap.disposed?
  91. super
  92. end
  93. #----------------------------------------------------------------------------
  94. # • Atualização dos objetos.
  95. #----------------------------------------------------------------------------
  96. def update
  97. opacity_defined
  98. self.x = ($game_map.events[@id].screen_x - (self.width / 2))
  99. self.y = ($game_map.events[@id].screen_y - 56) + @add_y
  100. end
  101. #----------------------------------------------------------------------------
  102. # • Definir opacidade
  103. #----------------------------------------------------------------------------
  104. def opacity_defined
  105. @distance = DMath.distance_sensor($game_player, $game_map.events[@id])
  106. self.opacity = (@distance <= @sensor) ? 255 : (@distance <= (@sensor * AREA)) ? 127 : 64
  107. end
  108. end
  109. #==============================================================================
  110. # • Scene_Map
  111. #==============================================================================
  112. class Scene_Map < Scene_Base
  113. #----------------------------------------------------------------------------
  114. # • Renovação dos objetos.
  115. #----------------------------------------------------------------------------
  116. alias :sensor_message_terminate :terminate
  117. def terminate
  118. sensor_message_terminate
  119. Rpg::Sensor_Message.dispose
  120. end
  121. #----------------------------------------------------------------------------
  122. # • Atualização dos objetos.
  123. #----------------------------------------------------------------------------
  124. alias :sensor_message_update :update
  125. def update
  126. sensor_message_update
  127. Rpg::Sensor_Message.update
  128. end
  129. end
  130. #==============================================================================
  131. # • Game_Interpreter
  132. #==============================================================================
  133. class Game_Interpreter
  134. #----------------------------------------------------------------------------
  135. # • Sensor.
  136. #----------------------------------------------------------------------------
  137. def sm(*args)
  138. Rpg::Sensor_Message.make(*args)
  139. end
  140. end
Advertisement
Add Comment
Please, Sign In to add comment