Project1

标题: 请教一个事件靠近主角的问题 [打印本页]

作者: gohwish    时间: 2015-12-27 22:41
标题: 请教一个事件靠近主角的问题
想设置一些怪物会追踪主角,但当有障碍物挡住,而且与主角站位平行时,事件就停止行走,不会绕开障碍物继续追踪,很不智能,这个有插件可以解决吗?
作者: andrewx    时间: 2015-12-27 23:56
试试自带的RPGmakerWeb_plugins\Shaz的SmartPath,我感觉比默认靠近寻路(不,我觉得那不算是寻路)聪明点,似乎是直接用了鼠标操作那套寻路。如果有障碍但是实际最短路径在10步左右的话还是会继续追踪。当然最短路径太长了也是搞不定的。
你需要用一个地图上的并行事件call插件指令来控制地图上每个敌人追踪主角。
另外用这个方法敌人是没有所谓视野范围的,全地图的敌人都会一起追踪,所以你可能需要自己加点条件判定来达到比较好的效果。
作者: gohwish    时间: 2015-12-28 00:36
andrewx 发表于 2015-12-27 23:56
试试自带的RPGmakerWeb_plugins\Shaz的SmartPath,我感觉比默认靠近寻路(不,我觉得那不算是寻路)聪明点 ...

觉得还不错,谢谢你的帮助,不过我对这个视野还没有什么头绪?
作者: andrewx    时间: 2015-12-28 00:51
一般来说设定为主角离怪物一定距离,或者能被怪物视野范围看到后,怪物才会追踪角色。我上面这个方法所有怪物从一开始就会往主角处逼近,导致跑地图前期敌人全聚过来。
比较好的办法是做个条件判定,如果主角和某个怪物距离小于某个值,才开启那个怪物的追踪插件指令。但是好像rm本身条件判断没有距离这个条件?(好像连坐标都得变量代?不太清楚,没仔细弄过),所以可能要麻烦一点。不过思路就这样
Yanfly的YEP_EventChasePlayer做了比较完善的怪物视野追踪还有放弃追踪的判定,但是寻路的方法还是默认的靠近,你可以去看看效果
作者: gohwish    时间: 2015-12-28 01:03
andrewx 发表于 2015-12-28 00:51
一般来说设定为主角离怪物一定距离,或者能被怪物视野范围看到后,怪物才会追踪角色。我上面这个方法所有怪 ...

谢谢,用简单的变量加条件分歧是可以做到的
作者: andrewx    时间: 2015-12-28 01:18
想了想那样做太麻烦了,我看了眼Yanfly的那个插件发现还是很容易加上shaz那个寻路的。
你先启用YEP_EventChasePlayer.js和shaz的SmartPath.js,并把下面的代码保存到一个新js文件里放在以上两个插件【下面】启用。
之后不用按照shaz那个设定插件指令了,只要按照Yanfly那个在移动路线里设置一下所需的属性(_chaseRange,_chaseSpeed之类的),就可以同时实现视野判定和智能寻路了。


JAVASCRIPT 代码复制下载
  1. Game_Event.prototype.updateChaseMovement = function() {
  2.         if (this._stopCount > 0 && this._chasePlayer) {
  3.                 this.setTarget($gamePlayer);
  4.         } else if (this._stopCount > 0 && this._fleePlayer) {
  5.                 this.moveAwayFromPlayer();
  6.         } else {
  7.                 this.clearTarget();
  8.                 Yanfly.ECP.Game_Event_updateSelfMovement.call(this);
  9.         }
  10. };


临时改的,不知道会不会出什么奇怪的现象,你先试试
作者: gohwish    时间: 2015-12-28 01:23
andrewx 发表于 2015-12-28 01:18
想了想那样做太麻烦了,我看了眼Yanfly的那个插件发现还是很容易加上shaz那个寻路的。
你先启用YEP_EventCh ...

好的,我研究一下,谢谢了




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