赞 | 3 |
VIP | 333 |
好人卡 | 91 |
积分 | 2 |
经验 | 55775 |
最后登录 | 2017-7-18 |
在线时间 | 2070 小时 |
Lv1.梦旅人 Mr.Gandum
- 梦石
- 0
- 星屑
- 226
- 在线时间
- 2070 小时
- 注册时间
- 2007-1-31
- 帖子
- 3039
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 feizhaodan 于 2015-7-31 15:43 编辑
- #==============================================================================
- # ■ Game_Event
- #------------------------------------------------------------------------------
- # 处理事件的类。拥有条件判断、事件页的切换、并行处理、执行事件等功能。
- # 在 Game_Map 类的内部使用。
- #==============================================================================
- class Game_Event < Game_Character
- # 改为true将会变成保存被标记为不保存的事件
- INVERSE_MARK = false
- #--------------------------------------------------------------------------
- # ● 是否储存位置
- #--------------------------------------------------------------------------
- def save_pos?
- return !INVERSE_MARK unless @list
- return !INVERSE_MARK if @list[0].code != 108
- return (@list[0].parameters[0].include?("不保存事件位置") == INVERSE_MARK)
- 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|
- if e.save_pos?
- @event_pos[@map_id][i] = [e.x,e.y,e.direction]
- else
- @event_pos[@map_id][i] = nil
- end
- }
- 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])
- e.set_direction(@event_pos[@map_id][i][2])
- }
- end
- end
复制代码 默认每次更换地图都会刷新事件位置。这个脚本让游戏保存事件位置,下次切换到这个地图时移动事件到上次所在的位置。
使用方法:直接插入到Main上方即可
2012/6/11
在不想保存事件位置时,在不想保存的事件页的第一行添加注释,内容要包含“不保存事件位置”
2012/8/10
修正在第一行添加内含“不保存事件位置”的注释的效果反了的傻逼错误
2014/2/11
增加只保存指定事件的功能。将INVERSE_MARK改为true时只保存被标记上"不保存事件位置"的事件的位置
增加保存事件朝向
2014/7/27
修正不会正确设置事件朝向的问题,感谢DeathKing的提醒。
2015/7/31
修正在反向模式时未被标记的事件还是会被保存 |
评分
-
查看全部评分
|