设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3911|回复: 15
打印 上一主题 下一主题

[已经解决] 关于事件移动时的一个奇妙透明障碍

[复制链接]

Lv5.捕梦者

梦石
28
星屑
11978
在线时间
2166 小时
注册时间
2020-1-17
帖子
207

极短24评委极短23评委极短22评委极短21获奖R考场第七期铜奖

跳转到指定楼层
1
发表于 2021-4-3 23:45:26 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
在事件里面用了“设置移动路线”,让某个事件沿着指定路线走,结果走了一步就停下来了。

之前用的是等待移动结束,结果是只走了一步就立刻转到下面的剧情。于是用了等待60帧,结果也是停在那个地方,等了一会儿接着剧情。
很奇怪,因为那个地方地图已经检查过了,哪个图层都没问题,主角也可以通行。剧情前面一点也有个事件从那个地图块经过,是没问题的,所以感觉不是地图块的问题。
然后怀疑是透明事件阻挡住了,但是在移动路线里面加上了允许穿透(包括一开始也给事件加了穿透),但是还是只走一步事件就被迫停下。
同时检查了该地图剩余的其他事件,只有目前在运行的自动执行,其他都不会造成移动路线上的干扰。
脚本的话用了对话框加强、人物跟随、按键加速脚本,其他基本和这方面没关系了。
也就是说:1、地图没问题 2、事件没问题 3、脚本没问题 4、其他剧情中事件(而且是同一个id的事件)可以通过,单单运行到这个时候事件被阻挡住
不清楚还有什么原因能够导致事件移动时被卡在那里,非常迷惑,求解。
下图是两个被挡住的事件移动路线,这两个移动时都会被卡在那个地方。

Lv5.捕梦者

梦石
0
星屑
36472
在线时间
10806 小时
注册时间
2009-3-15
帖子
4815
6
发表于 2021-4-4 13:48:41 | 只看该作者
本帖最后由 soulsaga 于 2021-4-4 13:54 编辑
越青 发表于 2021-4-4 09:38
提醒到我了,于是去检查了一下开关。因为移动是在开关打开,人物出现后才进行的,我在中间加了1帧就没问 ...


你的事件写法...在开关打开后事件出现前立即就接着指定事件移动来不及即时處理..所以用等待一帧才会正常..
实际上事件出现时內部需要时间..未出现就执行了事件移动..所以造成这样的问题
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6483
在线时间
119 小时
注册时间
2020-1-8
帖子
234
5
发表于 2021-4-4 12:39:10 | 只看该作者
本帖最后由 RPGzh500223 于 2021-4-4 12:58 编辑

首先,这问题与“透明”障碍、是否“穿透”应该无关

以下为个人理解
感觉是执行上的冲突(只第一次生效,自动执行会循环),所以等待1帧可以有效解决问题

1个自动执行事件(记为e0)
2个需要移动的事件(记为e1、e2) 设置了 事件出现条件 开关
当执行【开关操作】 时,会$game_map.need_refresh = true
使得该地图事件、公共事件全部refresh
-------e0中------------
打开e1的出现开关后, e1.refresh会判断是否有新page,有新page会执行@move_route_forcing = false ①

e1执行【设置移动路线】②

①("延迟"?)与②冲突,导致e1只走了一步就停下了

此时,主角和地图事件都没强制移动,【等待移动结束】结束

打开e2的开关,e2移动,

打开e1的开关,e1移动(从此就”正常“了)
然后一直循环

点评

打断改循环的方法有显示文章,等待移动结束(需要有移动路线设置),等待按键输入,等待。其中等待1贞是最简单且不影响原有效果的最佳做法。  发表于 2021-4-5 01:24
这是事件解释器的运作方式,update里头有个loop do循环,如果不打断loop该循环,所有事件指令会连续执行,而map refresh必须等update结束后才会执行。  发表于 2021-4-5 01:22
虽然具体原因还是不太明白(大概是新事件页和设置移动路线的冲突?),感觉挺有道理的XD  发表于 2021-4-4 13:42

评分

参与人数 1星屑 +150 +1 收起 理由
RyanBern + 150 + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
28
星屑
11978
在线时间
2166 小时
注册时间
2020-1-17
帖子
207

极短24评委极短23评委极短22评委极短21获奖R考场第七期铜奖

4
 楼主| 发表于 2021-4-4 09:38:34 | 只看该作者
89444640 发表于 2021-4-4 07:49
最好办法换个新地图再画一遍,我新建工程试了半天也没发现有问题,毕竟你事件编号是2和12我只有是事件1自动 ...

提醒到我了,于是去检查了一下开关。因为移动是在开关打开,人物出现后才进行的,我在中间加了1帧就没问题了。
貌似是:如果开关一打开(使事件出现),紧接着就是设置移动路线的话,人物只能走一步,必须在开关和设置移动路线中间加点东西——这样的操作。
(我用了个新工程结果还是会出现这个问题ORZ 难道是xp自带的蜜汁bug么?)
下面是个测试了两种情况的工程,不知道是不是我才出现这个问题ORZ
Project12.rar (187.72 KB, 下载次数: 58)

点评

我用等待x帧其实是一种替代的用法,实际上也能起到和等待移动结束差不多的效果  发表于 2021-4-4 13:35
不是等待移动结束的问题,之前是有加上的然后报错,才改成等待x帧,但是就算不加上等待移动结束也不会停下  发表于 2021-4-4 13:34
你没加等待移动结束..走一步就会停的  发表于 2021-4-4 10:49
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
35186
在线时间
4169 小时
注册时间
2007-12-15
帖子
10067
3
发表于 2021-4-4 07:49:34 | 只看该作者
最好办法换个新地图再画一遍,我新建工程试了半天也没发现有问题,毕竟你事件编号是2和12我只有是事件1自动执行。
看看是不是剧情变量一样又其他自动执行干扰了?我脚本玩成那花样也只出现了一个两个事件同时移动,以最下面的为等待移动结束,而不是以移动时间最长的为等待移动结束的问题,通行没见过开了穿透还不能穿透的,除非你有菜刀那样的单独定义,当开关1打开时,角色即使为穿透ON,也不能移动出坐标 xy左上~坐标 xy右下画的框,我这个是飞行时候开穿透,避免移动到规定以外的范围,如果开了穿透按说是能出去,但是这么定义以后就出不去了。你看看有没有类似功能开关/变量。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7981
在线时间
1183 小时
注册时间
2007-7-29
帖子
2055
2
发表于 2021-4-4 00:29:22 | 只看该作者
本帖最后由 enghao_lim 于 2021-4-4 00:34 编辑

设置移动路线后可以等待移动结束来确保移动完成,这东西没试出什么大问题。
至于你说的通行问题无法测试,毕竟我无法还原你的场景,至于我这穿透是有效的。
如果条件允许,建议你将问题地图单独剥离到新工程上传。

image_2021-04-04_002756.png (2.97 KB, 下载次数: 17)

image_2021-04-04_002756.png

点评

话说回来开关操作后等待1贞在远古时期是一套的,就算没需求也这么干,可能这方法中间失传了。  发表于 2021-4-5 01:31
在打开/关闭开关后通常都会建议等待一帧让地图刷新,具体原因可以看我5楼点评的解释。  发表于 2021-4-5 01:30
我建议用等待移动结束才能保证路线走完,等待的时间要是过短也是会提前结束。看了你的工程,这是事件解释器的运作顺序问题。  发表于 2021-4-5 01:26
发现了大概是开关的问题ORZ 不过等待移动结束这个之前也出过问题,必须等待所有事件移动结束后才会继续下面内容,所以当时我才改成等待x帧  发表于 2021-4-4 09:41

评分

参与人数 1星屑 +20 收起 理由
RyanBern + 20 我很赞同

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-29 02:00

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表