Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # =============================================================================
- # 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 <memorize> 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
Advertisement
Add Comment
Please, Sign In to add comment