输入“#$game_temp.lv_switches = false” 就可以启用保留事件位置的功能了
不过,和脚本无关——实际使用时表示保留事件位置会有坏处,比如之前设置好自定义路线的NPC,会在你记录的当前位置重新开始按路线移动,那么时间一长一定会卡住。
#$game_temp.lv_switches = true 禁用 #$game_temp.lv_switches = false 启用 class Game_Map alias old_setup setup def setup(jiong) if @lv_x == nil @lv_x = [] @lv_y = [] @lv_direction = [] end if @lv_x[jiong]==nil @lv_x[jiong]=[] @lv_y[jiong]=[] @lv_direction[jiong]=[] end old_setup(jiong) end def lv_x(one,two) return @lv_x[one][two] end def lv_y(one,two) return @lv_y[one][two] end def lv_x2(one,two,three) @lv_x[one][two]=three end def lv_y2(one,two,three) @lv_y[one][two]=three end def lv_direction(one,two) return @lv_direction[one][two] end def lv_direction2(one,two,three) @lv_direction[one][two]=three end end class Game_Event attr_reader :id attr_reader :map_id alias old_update update def update old_update $game_map.lv_x2(@map_id,@id,self.x) $game_map.lv_y2(@map_id,@id,self.y) $game_map.lv_direction2(@map_id,@id,self.direction) end def initialize(map_id, event) super() @map_id = map_id @event = event @id = @event.id @erased = false @starting = false @through = true if $game_map.lv_x(@map_id,@id)!=nil and !$game_temp.lv_switches @event.x = $game_map.lv_x(@map_id,@id) @event.y = $game_map.lv_y(@map_id,@id) @direction = $game_map.lv_direction(@map_id,@id) end moveto(@event.x, @event.y) refresh end end class Game_Temp attr_accessor :lv_switches end
#$game_temp.lv_switches = true 禁用
#$game_temp.lv_switches = false 启用
class Game_Map
alias old_setup setup
def setup(jiong)
if @lv_x == nil
@lv_x = []
@lv_y = []
@lv_direction = []
end
if @lv_x[jiong]==nil
@lv_x[jiong]=[]
@lv_y[jiong]=[]
@lv_direction[jiong]=[]
end
old_setup(jiong)
end
def lv_x(one,two)
return @lv_x[one][two]
end
def lv_y(one,two)
return @lv_y[one][two]
end
def lv_x2(one,two,three)
@lv_x[one][two]=three
end
def lv_y2(one,two,three)
@lv_y[one][two]=three
end
def lv_direction(one,two)
return @lv_direction[one][two]
end
def lv_direction2(one,two,three)
@lv_direction[one][two]=three
end
end
class Game_Event
attr_reader :id
attr_reader :map_id
alias old_update update
def update
old_update
$game_map.lv_x2(@map_id,@id,self.x)
$game_map.lv_y2(@map_id,@id,self.y)
$game_map.lv_direction2(@map_id,@id,self.direction)
end
def initialize(map_id, event)
super()
@map_id = map_id
@event = event
@id = @event.id
@erased = false
@starting = false
@through = true
if $game_map.lv_x(@map_id,@id)!=nil and !$game_temp.lv_switches
@event.x = $game_map.lv_x(@map_id,@id)
@event.y = $game_map.lv_y(@map_id,@id)
@direction = $game_map.lv_direction(@map_id,@id)
end
moveto(@event.x, @event.y)
refresh
end
end
class Game_Temp
attr_accessor :lv_switches
end
|