Project1

标题: 重复设置事件 [打印本页]

作者: taroxd    时间: 2014-12-20 15:21
标题: 重复设置事件
本帖最后由 taroxd 于 2015-2-4 21:09 编辑

公共事件没法调教整个事件页真是残念

RUBY 代码复制
  1. #----------------------------------------------------------------------------
  2. # ● require Taroxd基础设置
  3. #    简化重复事件的设置
  4. #----------------------------------------------------------------------------
  5. #    使用方法:
  6. #      在事件名称上备注 <render event_id>
  7. #        那么这个事件会完全被该地图中的事件 event_id 代替。
  8. #      在事件名称上备注 <render event_id map_id>
  9. #        那么这个事件会完全被地图 map_id 中的事件 event_id 代替。
  10. #----------------------------------------------------------------------------
  11.  
  12. module Taroxd::RenderEvent
  13.  
  14.   # 获取地图(RPG::Map)。map_id 为 0 时获取当前地图。
  15.   def self.load_map(map_id)
  16.     case map_id
  17.     when 0, $game_map.map_id
  18.       $game_map.data_object
  19.     when @last_map_id
  20.       @last_map
  21.     else
  22.       @last_map_id = map_id
  23.       @last_map = load_data sprintf("Data/Map%03d.rvdata2", map_id)
  24.     end
  25.   end
  26. end
  27.  
  28. class RPG::Event
  29.  
  30.   # 重定义:获取事件页
  31.   def pages
  32.     @rendered_pages ||= rendered_pages
  33.   end
  34.  
  35.   private
  36.  
  37.   def rendered_pages
  38.     return @pages unless @name =~ /<render\s+(\d+)(\s+\d+)?>/i
  39.     Taroxd::RenderEvent.load_map($2.to_i).events[$1.to_i].pages
  40.   end
  41.  
  42. end






欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1