# ============================================================================= # TheoAllen - Memorize Event Position # Version : 1.0 # Contact : www.rpgmakerid.com (or) http://theolized.blogspot.com # (This script documentation is written in informal indonesian language) # ============================================================================= ($imported ||= {})[:Theo_MemorizeEvent] = true # ============================================================================= # CHANGE LOGS: # ----------------------------------------------------------------------------- # 2013.06.18 - Finished script # ============================================================================= =begin Perkenalan : Script ini berfungsi untuk mengingat posisi terakhir dari sebuah event sebelum berpindah ke map lain. Saat kamu kembali ke map itu, event tersebut akan berada pada posisi terakhir kali sesaat sebelum player berpindah peta. Cara penggunaan : Pasang dibawah material namun diatas main. Tulis pada awal nama event untuk mengingat posisi terakhir event 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 # ============================================================================= # Tidak ada konfigurasi # ============================================================================= module THEO module MAP module REGEXP MEMORIZE = /<(?:MEMORIZE|memorize)>(.*)/ end end end Point = Struct.new(:x,:y) class Event_Memorizer def initialize @data = {} end def [](key) if @data[key].nil? event = $game_map.events[key[1]] @data[key] = Point.new(event.x,event.y) end return @data[key] end def []=(key,value) @data[key] = value end end class Game_System attr_accessor :event_pos alias pre_evmemorize_init initialize def initialize pre_evmemorize_init init_event_memorizer end def init_event_memorizer @event_pos = Event_Memorizer.new end end class Game_Event < Game_Character def name @event.name end end class Scene_Map < Scene_Base include THEO::MAP alias pre_evmemorize_transfer pre_transfer def pre_transfer pre_evmemorize_transfer save_events_location end def save_events_location $game_map.events.each do |id,event| case event.name when REGEXP::MEMORIZE $game_system.event_pos[[$game_map.map_id,id]]=Point.new(event.x,event.y) end end end end class Game_Map include THEO::MAP alias pre_setup_evmemorize setup def setup(map_id) pre_setup_evmemorize(map_id) load_events_location end def load_events_location events.each do |id,event| case event.name when REGEXP::MEMORIZE point = $game_system.event_pos[[map_id,id]] event.moveto(point.x,point.y) end end end end