赞 | 189 |
VIP | 627 |
好人卡 | 188 |
积分 | 95 |
经验 | 171230 |
最后登录 | 2024-7-3 |
在线时间 | 5073 小时 |
Lv4.逐梦者 (版主)
- 梦石
- 0
- 星屑
- 9532
- 在线时间
- 5073 小时
- 注册时间
- 2013-6-21
- 帖子
- 3580
|
本帖最后由 RyanBern 于 2014-9-10 21:58 编辑
LS的除了taroxd的回帖回答得都有些问题(可能是没看懂LZ问的是什么吧)
LZ要的效果是让一个自动执行的事件在主角离开地图再返回或者退出游戏再重新载入的时候都能重新执行。
“中断事件处理”不可以,这是因为中断事件处理会直接结束本次事件的执行,但是由于是自动执行的事件,所以出现条件是被满足的,因此中断事件处理后会从头再执行一遍。
“暂时消除事件”不可以,这是因为在存档后,事件的@erased状态被记录,导致重新载入后,事件依然处于@erased状态而无法重新出现。因此不满足LZ说的第二个要求。
从这点看来,“暂时消除事件”已经和预期效果相差不远。因此要做一些改动,每次进入地图画面时,被暂时消除的事件都会复原。
首先给Game_Event类的@erased加个只可写属性:- class Game_Event
- attr_writer :erased
- end
复制代码 然后在进入地图画面的时候,消除@erased状态。在Scene_Map的11行,其实是这句话def main之后加上下面的脚本。- $game_map.events.values.each do |ev|
- ev.erased = false
- end
- $game_map.refresh
复制代码 上面语句的意思就是进入地图画面就会消除@erased状态。
这样,被“暂时消除”的事件就会重新出现了。 |
|