Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # =============================================================================
- # TheoAllen - Simple Text Over Event
- # Version : 1.0
- # Contact : www.rpgmakerid.com (or) http://theolized.blogspot.com
- # (This script documentation is written in informal indonesian language)
- # =============================================================================
- ($imported ||= {})[:Theo_TextEvent] = true
- # =============================================================================
- # CHANGE LOGS:
- # -----------------------------------------------------------------------------
- # 2013.06.09 - Finished script
- # =============================================================================
- =begin
- Perkenalan :
- Script ini cuman nampilin text diatas event
- Cara penggunaan :
- Pasang dibawah material namun diatas main
- Tulis <text: terserah> pada nama event jika mau ditampilin
- TERMS OF USE :
- Credit gw, TheoAllen. Kalo semisal u bisa ngedit2 script gw trus jadi lebih
- keren, terserah. Ane bebasin. Asal ngga ngeklaim aja. Kalo semisal mau
- dipake buat komersil, jangan lupa, gw dibagi gratisannya.
- =end
- # =============================================================================
- # Konfigurasi kecil2an :
- # =============================================================================
- module THEO
- module MAP
- # Lebar window yg diisi text
- WINDOW_WIDTH = 200
- # Size font
- FONT_SIZE = 17
- # Warnanya (red,green,blue
- FONT_COLOR = Color.new(255,255,255)
- # Posisi offset dari koordinat y
- OFFSET_Y = 0
- end
- end
- # =============================================================================
- # Batas konfigurasi
- # =============================================================================
- module THEO
- module MAP
- module REGEXP
- TEXT = /<(?:TEXT|text):(.*)>/i
- end
- end
- end
- class Window_CharText < Window_Base
- include THEO::MAP
- def initialize(char,text)
- @char = char
- @text = text
- super(0,0,window_width,window_height)
- self.opacity = 0
- contents.font.size = FONT_SIZE
- update_placement
- refresh
- end
- def update_placement
- return unless @char
- self.x = @char.screen_x - self.width/2
- self.y = @char.screen_y - 20 - self.height - OFFSET_Y
- end
- def update
- super
- update_placement
- end
- def refresh
- contents.clear
- draw_text(0,0,contents.width,FONT_SIZE,@text,1)
- end
- def window_width
- WINDOW_WIDTH
- end
- def window_height
- return FONT_SIZE + standard_padding*2
- end
- end
- class Game_Event < Game_Character
- def name
- @event.name
- end
- end
- class Scene_Map < Scene_Base
- include THEO::MAP
- alias pre_text_over_event_start start
- def start
- pre_text_over_event_start
- create_text_event_windows
- end
- def create_text_event_windows
- @event_text_windows = []
- $game_map.events.values.each do |event|
- case event.name
- when REGEXP::TEXT
- text = $1.to_s
- @event_text_windows.push(Window_CharText.new(event,text))
- end
- end
- end
- alias pre_update_window_text update
- def update
- pre_update_window_text
- update_text_window
- end
- def update_text_window
- @event_text_windows.each {|w| w.update}
- end
- alias pre_text_event_terminate terminate
- def termminate
- pre_text_event_terminate
- dispose_text_event_windows
- end
- def dispose_text_event_windows
- @event_text_windows.each {|w| w.dispose}
- end
- alias text_event_post_transfer post_transfer
- def post_transfer
- dispose_text_event_windows
- create_text_event_windows
- text_event_post_transfer
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment