Project1

标题: 请教一下关于自定义路线的脚本问题 [打印本页]

作者: shantianzu    时间: 2018-10-24 14:33
标题: 请教一下关于自定义路线的脚本问题
本帖最后由 shantianzu 于 2018-10-25 09:08 编辑

本人对JS就是个小白,用了 [原创发布] 角色拓展--修复自动寻路,及增加个别功能这个插件想实现一个功能,
里面插件命令之类的都会用,就是想先移动到地图的一个位置,然后再继续移动到地图的另一个位置的时候,插件命令应该怎么写??

如果插入两个脚本命令的话,事件会再两个指令之间来回循环,做不到先到一个位置再到一个位置的需求,请教大神们有什么办法可以实现?


插件地址:https://rpg.blue/forum.php?mod=viewthread&tid=400688&extra=page%3D7%26filter%3Dtypeid%26typeid%3D1306
作者: yang1zhi    时间: 2018-10-24 15:11
用条件分歧。来给两次移动加个条件。
这和现实世界是一样的。
你要从家里到超市,再到机场。
那么你怎么判断你当前是要到超市,还是要到机场。
你可以加个变量判断是移动了几次。
你也可以判断当前在什么地方来判断要去哪里。

作者: wabcmcc    时间: 2018-10-24 17:41
在事件頁移動路線,分二段,
第一段第一個移動目標,
第二段第二個移動目標,
或用(各大神都有)移動路線插件,
作者: shantianzu    时间: 2018-10-25 09:37
yang1zhi 发表于 2018-10-24 15:11
用条件分歧。来给两次移动加个条件。
这和现实世界是一样的。
你要从家里到超市,再到机场。

首先感谢你的回复,昨天时间比较紧,忘记发插件的地址了,抱歉。
他的这个插件命令是要写在自定义路线中的脚本里的,并且需要点
开循环执行才可以正常运行,插件指令:this.moveTowardDestination(x, y);
试着写IF,但是因为是循环执行,第二次移动会卡住,有没有什么办法能
连接两条指令,让它执行完一个再执行下一个?
作者: shantianzu    时间: 2018-10-25 09:41
wabcmcc 发表于 2018-10-24 17:41
在事件頁移動路線,分二段,
第一段第一個移動目標,
第二段第二個移動目標,

事件页设置两次移动很简单,主要是想留着事件页做别的,又不想并行处理,怕以后多了
会卡。我用的就是移动路线的插件,不过命令是写在自定义路线里的,还得循环执行才可
以,这样想实现两次或者多次移动比较难办,不管怎样,感谢你的回复。
作者: yang1zhi    时间: 2018-10-25 09:51
shantianzu 发表于 2018-10-25 09:37
首先感谢你的回复,昨天时间比较紧,忘记发插件的地址了,抱歉。
他的这个插件命令是要写在自定义路线中 ...

自定义路线里面的脚本是属于Game_Character.prototype.luxian = function() {

只要是在Game_Character下写的函数,可以直接写在自定义路线里。
this.luxian()
作者: shantianzu    时间: 2018-10-25 10:41
yang1zhi 发表于 2018-10-25 09:51
自定义路线里面的脚本是属于Game_Character.prototype.luxian = function() {

只要是在Game_Character下 ...

我看了一下你说的自定义路线的脚本,发现两个问题:

第一,我看不懂啊,

第二,我实验了一下,发现直接在自定义路线下添加脚本指令好像只能打开循环执行才可以正常到达位置,
           那样的话就跟我用的这个寻路插件一样,不可以写两段脚本命令,会循环执行导致卡住。

有没有办法在循环执行的情况下,添加两条指令,让它运行完一条,到达位置后,再运行下一条,到达目的地?或者可以在不循环执行的情况下,添加两条指令来实现先到达一个位置,再去另一个位置?
作者: yang1zhi    时间: 2018-10-25 11:11
shantianzu 发表于 2018-10-25 10:41
我看了一下你说的自定义路线的脚本,发现两个问题:

第一,我看不懂啊,

循环肯定要开的啊,这样才会持续执行啊。
所以我之前就说了,要开条件分歧,你就是不听。

作者: shantianzu    时间: 2018-10-25 13:05
本帖最后由 shantianzu 于 2018-10-25 13:07 编辑
yang1zhi 发表于 2018-10-25 11:11
循环肯定要开的啊,这样才会持续执行啊。
所以我之前就说了,要开条件分歧,你就是不听。
...


没,你说完需要分歧的时候我就着手学习了,一直没成功。
我这样写 if (this.x != 22 || this.y != 42) { this.moveTowardDestination(22, 42); } else { this.moveTowardDestination(6, 42); } 到后面分歧的时候就会循环卡住,感觉是前面
的特殊符号用的不对,对代码一窍不通啊,边学边做,正确的应该怎么写啊?请指教


用了&&符号也是循环时卡住,现在脑子有点迷糊了,
作者: yang1zhi    时间: 2018-10-25 13:13
shantianzu 发表于 2018-10-25 13:05
没,你说完需要分歧的时候我就着手学习了,一直没成功。
我这样写 if (this.x != 22 || this.y != 42) {  ...

你可以在移动前设一个变量为0
移动到1地点后,设变量为1
if (变量 == 0)
{ this.moveTowardDestination(22, 42); }
else { this.moveTowardDestination(6, 42); }






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