赞 | 3 |
VIP | 4 |
好人卡 | 4 |
积分 | 1 |
经验 | 8941 |
最后登录 | 2015-8-17 |
在线时间 | 182 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 182 小时
- 注册时间
- 2012-2-11
- 帖子
- 233
|
nice。复制事件的确是事件党常用的功能呢~
其实我的机关陷阱样例里面也有复制事件(链接见签名)
里面是这样写的:- module EventHelper
- def self.get_rpg_event(event_id, map_id=$game_map.map_id)
- map = $game_map.instance_variable_get(:@map)
- if map_id != $game_map.map_id
- map = load_data(sprintf("Data/Map%03d.rvdata2", map_id))
- end
- return map.events[event_id]
- end
- end
- class Game_Event
- attr_accessor :id
- attr_accessor :erased
- end
- class Game_Map
- # rpg_evt:需要刷新的事件RPG::Event, 用上面的get_rpg_event获得
- # xy:坐标
- # dir:朝向
- # ss:需要打开的独立开关列表("ABCD")
- def spawn_event(rpg_evt, x, y, dir=2, ss="")
- new_id = 1 + @map.events.keys.max
- new_evt = RPG::Event.new(x, y)
- new_evt.id = new_id
- new_evt.pages = rpg_evt.pages
- @map.events[new_id] = new_evt
- @events[new_id] = Game_Event.new(@map_id, new_evt)
- @events[new_id].set_direction(dir)
- ss.each_char{|c| $game_self_switches[[@map_id, new_id, c]] = true }
-
- # 刷新图块
- refresh_tile_events
- SceneManager.scene.instance_eval { @spriteset.refresh_characters }
- end
- end
复制代码 |
|