#========================================================#★ 事件複製 -by joe59491#========================================================#========參數設定========================================$Eve_Control = 18 #是否要關閉自動回復地圖上的事件的開關編號#========================================================#========使用說明========================================#複製事件#Eve_To_Map.new(新X座標,新Y座標,複製事件所在地圖的編號,複製事件編號)#新事件编号是从200开始算起的,如果你这张地图内有超过200普通事件,会爆,记得改一下下面的脚本#预设一张图最多复制100个事件(够多了吧?)#刪除事件(全部,針對複製的)#Dis_Eve.new#儲存事件(非自動,針對複製的)#Save_Eve.new #讀取事件(非自動,針對複製的)#Load_Eve.new#p.s. 當開關關閉時,會事件會被保留,否則會消失。#========================================================class Game_Character attr_accessor :id # IDendclass Eve_To_Map def initialize(x, y, map_id, eve_id) map = load_data(sprintf("Data/Map%03d.rxdata", map_id)) #p map.events[7] for i in 200..300 if $game_map.events[i] == nil $game_map.events[i] = Game_Event.new($game_map.map_id, map.events[eve_id]) $game_map.events[i].moveto(x,y) $game_map.events[i].id=i $scene.spriteset.dispose $scene.spriteset = Spriteset_Map.new break end end endendclass Game_Map attr_accessor :SEve alias initialize_seve initialize def initialize @SEve=[0] initialize_seve end alias update_seve update def update if $game_map.need_refresh #p end update_seve endendclass Save_Eve def initialize $game_map.SEve[$game_map.map_id]=[0] for i in 200..300 if $game_map.events[i] != nil $game_map.SEve[$game_map.map_id][i-200] = $game_map.events[i] end end endendclass Load_Eve def initialize if $game_map.SEve[$game_map.map_id]!=nil for i in 0..100 if $game_map.SEve[$game_map.map_id][i] != nil and $game_map.SEve[$game_map.map_id][i] != 0 $game_map.events[i+200]=$game_map.SEve[$game_map.map_id][i] end end $scene.spriteset = Spriteset_Map.new end endendclass Dis_Eve def initialize for i in 200..300 if $game_map.events[i] != nil $game_map.events[i].erase end end endendclass Interpreter alias command_201_seve command_201 def command_201 if !$game_switches[$Eve_Control] Save_Eve.new end command_201_seve endendclass Scene_Map attr_accessor :spriteset alias transfer_player_seve transfer_player def transfer_player transfer_player_seve if !$game_switches[$Eve_Control] Load_Eve.new end endend复制代码