Project1

标题: 怎样让一个自动执行(并行处理)的事件在退出再进或者... [打印本页]

作者: qmario    时间: 2014-9-9 20:37
标题: 怎样让一个自动执行(并行处理)的事件在退出再进或者...
怎样让一个自动执行(并行处理)的事件在退出再进或者从别的场景进入时都执行一次然后不执行?开关不行,会和游戏一起保存。暂时消除不行,保存退出再进不能执行。
作者: 573932914    时间: 2014-9-9 20:57
本帖最后由 573932914 于 2014-9-10 13:45 编辑

中断事件处理或暂时消除事件
好吧还是中断事件处理
我能说两个一起用大丈夫?
作者: 无忧谷主幻    时间: 2014-9-9 21:27
本帖最后由 无忧谷主幻 于 2014-9-10 21:05 编辑

你的意思是执行后,场所移动到别的地方后回来,会在执行一次吗?

解答,那么用开关是可以的,等要离开该场景时再次关上开关就可以了
作者: Im剑侠客    时间: 2014-9-9 21:34
我所掌握的是:“自动执行”的事件在内容最后“暂时消除事件”是可以在下次进入该场景时再度生效的。
作者: Fakmab    时间: 2014-9-9 22:11
可以用“暂时消除事件”

把独立开关判断改成暂时消除事件
作者: taroxd    时间: 2014-9-10 13:14
本帖最后由 taroxd 于 2014-9-10 17:21 编辑
开关不行,会和游戏一起保存

每次读档或离开地图时打开一个开关,事件执行完毕后关掉。应该不难实现(我没说纯事件哦~)
作者: RyanBern    时间: 2014-9-10 17:35
本帖最后由 RyanBern 于 2014-9-10 21:58 编辑

LS的除了taroxd的回帖回答得都有些问题(可能是没看懂LZ问的是什么吧)
LZ要的效果是让一个自动执行的事件在主角离开地图再返回或者退出游戏再重新载入的时候都能重新执行。
“中断事件处理”不可以,这是因为中断事件处理会直接结束本次事件的执行,但是由于是自动执行的事件,所以出现条件是被满足的,因此中断事件处理后会从头再执行一遍。
“暂时消除事件”不可以,这是因为在存档后,事件的@erased状态被记录,导致重新载入后,事件依然处于@erased状态而无法重新出现。因此不满足LZ说的第二个要求。
从这点看来,“暂时消除事件”已经和预期效果相差不远。因此要做一些改动,每次进入地图画面时,被暂时消除的事件都会复原。
首先给Game_Event类的@erased加个只可写属性:
  1. class Game_Event
  2.   attr_writer :erased
  3. end
复制代码
然后在进入地图画面的时候,消除@erased状态。在Scene_Map的11行,其实是这句话def main之后加上下面的脚本。
  1. $game_map.events.values.each do |ev|
  2.   ev.erased = false
  3. end
  4. $game_map.refresh
复制代码
上面语句的意思就是进入地图画面就会消除@erased状态。
这样,被“暂时消除”的事件就会重新出现了。
作者: Im剑侠客    时间: 2014-9-10 20:57
若真的想用在读取存档,再执行一个事件,就在读取存档的脚本上,写上一句:$game_temp.common_event_id = 公共事件的编号。事到如今,我还真想知道,楼主想做成怎样的效果,期待解释。
作者: 无忧谷主幻    时间: 2014-9-10 22:52
复件 Project1.zip (201.98 KB, 下载次数: 46)


作者: qmario    时间: 2014-9-11 14:18
@RyanBern 就是这个

复件 (2) 孤岛余生(新).rar

1.67 MB, 下载次数: 52


作者: RyanBern    时间: 2014-9-11 16:15
qmario 发表于 2014-9-11 14:18
@RyanBern 就是这个

问题出现的原因是“地图保存事件位置”这个脚本不但保存了所有事件的位置,而且保存了所有事件的其他信息(例如这里的@erased状态)。所以导致切换地图后,暂时消除的事件永远不会出现。
解决办法:在“地图保存事件位置”脚本的24行加入这个(当然原来的改动也要做):
  1. @events.values.each do |ev|
  2.   ev.erased = false
  3. end
  4. refresh
复制代码
即可

作者: qmario    时间: 2014-9-12 13:42
@RyanBern
没看见评分。不过你阅读这个好像可以获得经验?
作者: Im剑侠客    时间: 2014-9-13 00:54
虽然知道了楼主想做天黑效果,但我不知道楼主如何把天黑做成。我所知道的天黑制法有二:1.灰色调的显示图片、2.更改画面色调。不管是第一种还是第二种,如我前边回贴中,我所说的“自动执行”然后在“暂时消除事件”前面加上处理天黑内容,不管退出还是换场景,它们都被记录了下来,甚至也不需要再在读取存档的脚本加公共事件。就在刚刚测试过了,可行的。关键在于楼主的天黑处理了吧,能不能说一下,期待解说。
作者: qmario    时间: 2014-9-16 20:41
@Im剑侠客  

Project1.rar

204.39 KB, 阅读权限: 10, 下载次数: 4

需要图片、公共事件和脚本






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