本帖最后由 星小彩 于 2013-6-18 15:26 编辑
我在整合系统里发现的 不过我没试的 你试试吧
保存事件位置(作者:feizhaodan)
主要功能是当主角离开地图,再次回归时,系统自动读取角色离开时事件的位置并且使事件到那个位置上(VA默认是回来时重新将事件归为原位),所以这个脚本增强了真实性(对我而言吧,对大家来说或许没用。。)。感觉还是不错的,即插即用。
适用游戏:图块绘制的地图,事件较多的游戏
#============================================================================== # ■ Game_Map #------------------------------------------------------------------------------ # 管理地图的类。拥有卷动地图以及判断通行度的功能。 # 本类的实例请参考 $game_map 。 #============================================================================== class Game_Map #-------------------------------------------------------------------------- # ● 初始化对象 #-------------------------------------------------------------------------- alias save_event_pos_initialize initialize def initialize save_event_pos_initialize @event_pos = {} end #-------------------------------------------------------------------------- # ● 设置 #-------------------------------------------------------------------------- alias save_event_pos_setup setup def setup(map_id) save_event_pos save_event_pos_setup(map_id) load_event_pos end #-------------------------------------------------------------------------- # ● 保存事件位置 #-------------------------------------------------------------------------- def save_event_pos return if @map_id == 0 @event_pos[@map_id] ||= [] @events.each{|i,e| @event_pos[@map_id][i] = [e.x,e.y] } end #-------------------------------------------------------------------------- # ● 读取事件位置 #-------------------------------------------------------------------------- def load_event_pos return if @map_id == 0 @event_pos[@map_id] ||= [] @events.each{|i,e| next unless @event_pos[@map_id][i] e.moveto(@event_pos[@map_id][i][0],@event_pos[@map_id][i][1]) } end end
#==============================================================================
# ■ Game_Map
#------------------------------------------------------------------------------
# 管理地图的类。拥有卷动地图以及判断通行度的功能。
# 本类的实例请参考 $game_map 。
#==============================================================================
class Game_Map
#--------------------------------------------------------------------------
# ● 初始化对象
#--------------------------------------------------------------------------
alias save_event_pos_initialize initialize
def initialize
save_event_pos_initialize
@event_pos = {}
end
#--------------------------------------------------------------------------
# ● 设置
#--------------------------------------------------------------------------
alias save_event_pos_setup setup
def setup(map_id)
save_event_pos
save_event_pos_setup(map_id)
load_event_pos
end
#--------------------------------------------------------------------------
# ● 保存事件位置
#--------------------------------------------------------------------------
def save_event_pos
return if @map_id == 0
@event_pos[@map_id] ||= []
@events.each{|i,e|
@event_pos[@map_id][i] = [e.x,e.y]
}
end
#--------------------------------------------------------------------------
# ● 读取事件位置
#--------------------------------------------------------------------------
def load_event_pos
return if @map_id == 0
@event_pos[@map_id] ||= []
@events.each{|i,e|
next unless @event_pos[@map_id][i]
e.moveto(@event_pos[@map_id][i][0],@event_pos[@map_id][i][1])
}
end
end
|