#============================================================================== # イベントランダム配置 ver1.00 #------------------------------------------------------------------------------ #[特徴] # 特定のイベントをランダムに配置します。 # #[設定方法] # イベント名に『ランダム配置』と書く。 # #[仕様] # イベント同士が重なることはありません。 # 移動できないマスには配置しません。 # # 作成:ぶちょー # ホム:http://nyannyannyan.bake-neko.net/ # 著作:自分で作ったとか言わないで>< # 改造はご自由にどうぞ。 # リードミーとかに私の名前の載せたりするのは任意で。 #============================================================================== #============================================================================== # バージョンアップ情報 # ver1.00 公開 #============================================================================== #============================================================================== # ■ Game_System #============================================================================== class Game_System #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :event_pos #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias random_setting_initialize initialize def initialize random_setting_initialize @event_pos = [] end end #============================================================================== # ■ Game_Map #============================================================================== class Game_Map #-------------------------------------------------------------------------- # ● セットアップ #-------------------------------------------------------------------------- alias random_setting_setup setup def setup(map_id) $game_system.event_pos.clear if @map_id != map_id random_setting_setup(map_id) end end #============================================================================== # ■ Game_Event #============================================================================== class Game_Event < Game_Character #-------------------------------------------------------------------------- # ● オブジェクト初期化 #-------------------------------------------------------------------------- alias random_setting_initialize initialize def initialize(map_id, event) random_setting_initialize(map_id, event) if $game_system.event_pos[@id] x = $game_system.event_pos[@id][0] y = $game_system.event_pos[@id][1] moveto(x, y) elsif event.name =~ /ランダム配置/i x = 0 ; y = 0 loop do x = rand($game_map.width) y = rand($game_map.height) if $game_map.passable?(x, y) if $game_map.events_xy(x, y).empty? break end end end $game_system.event_pos[@id] = [x, y] moveto(x, y) end end end