Project1

标题: 请教一种只等待本事件移动结束的效果 [打印本页]

作者: 飞各大大    时间: 2012-10-29 10:47
标题: 请教一种只等待本事件移动结束的效果
本帖最后由 飞各大大 于 2012-10-29 11:58 编辑

假设一个事件通常情况下距离主角距离小于3格就远离,大于7格就接近,处于中间范围就不动。当该事件被主角逼到地图边界时会反向移动直至与主角继续保持3~7格的距离(途中被主角阻挡会绕开),我希望该事件反向移动的时候不受之前小于3远离,大于7接近的距离判定影响,直至与主角保持了3格以上距离才继续受之前3~7格判定的影响
作者: 伊吹西瓜    时间: 2012-10-29 23:10
hmm~这个方法我以前试过可以用2个人的坐标来计算距离的,不过很麻烦,让楼下解答吧。。。
作者: j433463    时间: 2012-10-30 20:11
反向移动是指反过来朝着主角方向移动,还是向两边方向移动?
如果朝主角移动,那等于要穿过主角到另一边距离三步以上,
需不需要判断反向移动时被主角或别的障碍物阻挡的情况?
另外,如果被逼到一个死角,譬如主角和事件中间有块岩石,
两边也有东西挡住,在移动时又怎么处理?

作者: 飞各大大    时间: 2012-10-30 22:06
j433463 发表于 2012-10-30 20:11
反向移动是指反过来朝着主角方向移动,还是向两边方向移动?
如果朝主角移动,那等于要穿过主角到另一边距 ...

如果主角是沿X轴逼近,事件与主角Y坐标不同就朝着主角方向移动,如果Y坐标相同就沿着版边朝上或下移动直到与主角Y坐标不同再朝主角移动,如果主角是沿Y轴逼近,事件与主角X坐标不同就朝着主角方向移动,如果X坐标相同就沿着版边朝左或右移动直到与主角X坐标不同再朝主角移动。别的障碍物暂时不考虑
作者: 亿万星辰    时间: 2012-10-31 09:22
本帖最后由 亿万星辰 于 2012-10-31 09:32 编辑

说实话,问题的描述看的我有些纠结了……
前半部分是近了跑,远了跟,这个可以理解~
后半部分大致意思就是被逼到地图边缘的时候,不继续撞墙而是换个方向移动吧?

那如果逼到了死胡同里呢?那不是死无葬身之地了?

这样的事件很多么?还是只一个?
作者: j433463    时间: 2012-10-31 09:31
其实这种方式在暗黑II中也有,萝格营地的鸡在玩家靠近时会突然跑开,迫到墙角会往旁边躲,轩辕剑也有过类似的,
我就试过把鸡逼到角落有障碍物的地方,但是鸡突然暴冲向玩家角色,跑到对角去,可是我想这样的脚本不好写吧?
要考虑的状况太多。
作者: 亿万星辰    时间: 2012-10-31 11:54
给改进了一下,把远离主角的条件更改为与主角的距离等于3的时候远离

最后就成了这样的情况
距离超过7时,事件追主角,一直追到距离等于7时停住;
主角去接近事件时,接近到3时,事件开始掉头逃窜,追一步,逃一步;
当主角快要追上事件之后,即两者距离小于3时,事件开始掉头追主角。

这个与楼主之前设定唯一的不同时,当事件掉头追主角时,主角如果能够逃开3的距离,事件会停止追击;而楼主的设定似乎是一旦开始追的话就是拼命的追赶了。

这样的话通过事件页里移动规则中的自定义方式设置一定的移动路线即可实现这个功能,当然要实现楼主原来的功能也是可以的。
作者: 飞各大大    时间: 2012-10-31 15:19
其实就是在做一种射击类的敌人,在3~7格距离射程内就攻击主角,近逃远追的效果已经实现了,逃跑的行为放在了并行的公共事件里,单独测试追一个敌人追到版边没什么问题,敌人会上下移动直至与主角有坐标差就反向逃出去,但是这样的敌人一多混战起来某些敌人会呆呆站着不动,应该是受了公共事件里等待移动结束的影响,去掉等待移动结束敌人的走动就正常了,但是被逼到版边就只会死循环往复行走而不会逃出去




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