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

Project1

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

[已经解决] 求救!!请大神告知MV时间移动脚本【已解决】

[复制链接]

Lv2.观梦者

梦石
0
星屑
871
在线时间
292 小时
注册时间
2010-9-9
帖子
65
跳转到指定楼层
1
发表于 2016-3-18 02:52:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 czsRwind 于 2016-3-18 11:18 编辑

在VA的事件指令→设置移动路线→脚本。可以用moveto(x,y)设置自动移动。但是MV用moveto的时候,提示代码错误,请教下大神完整的脚本代码是什么。

点评

setPosition(x,y)  发表于 2016-3-18 08:03

Lv3.寻梦者

梦石
0
星屑
1244
在线时间
898 小时
注册时间
2014-12-4
帖子
379
2
发表于 2016-3-18 08:09:49 | 只看该作者
本帖最后由 翻滚牛宝宝 于 2016-3-18 11:13 编辑

$gameMap.event(this._eventId).setPosition(x,y)
JAVASCRIPT 代码复制
  1. //=============================================================================
  2. // Smart Pathfinding
  3. // by Shaz
  4. // Last Updated: 2015.10.26
  5. //=============================================================================
  6.  
  7. /*:
  8.  * @plugindesc Allows events or players to do smart Pathfinding
  9.  * @author Shaz
  10.  *
  11.  * @help
  12.  *
  13.  * This is merely a fork of Shaz's SMARTPATH plugin. I've added some extra
  14.  * functionality to be able to auto-cancel the pathfinding as well as to
  15.  * have the event interpreter WAIT while the pathing takes place.
  16.  *
  17.  * Plugin Command:
  18.  *  SmartPath eventId1 eventId2      # Makes event 1 find path to event 2
  19.  *  SmartPath eventId x y            # Makes event find a path to location x, y
  20.  *  SmartPath eventId cancel         # Cancel Pathfinding for event
  21.  *
  22.  *  event = number for specific event
  23.  *  event = 0 for "this" event
  24.  *  event = -1 for player
  25.  *  event = $gameVariables.value(x) to get the event id from variable x
  26.  *
  27.  *  x, y = coordinates or $gameVariables.value(#) to use a variable coordinate
  28.  *
  29.  * Update by DragoonKain:
  30.  *   Use Game_Interpreter.findEvent to allow specifying events by name.
  31.  *   Added Wait, Auto_Cancel and Auto_Cancel_Near.
  32.  */
  33.  
  34. (function() {
  35.   var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
  36.   Game_Interpreter.prototype.pluginCommand = function(command, args) {
  37.     _Game_Interpreter_pluginCommand.call(this, command, args);
  38.  
  39.     if (command.toUpperCase() === 'SMARTPATH') {
  40.       subject = this.findEvent
  41.         ? this.findEvent(args[0])
  42.         : this.character(eval(args[0]));
  43.  
  44.       if (args[1].toUpperCase() === 'CANCEL') {
  45.         subject.clearTarget();
  46.       } else if (args[1].toUpperCase() === 'WAIT') {
  47.         if (subject._target && !subject.isOnTarget(subject._targetX, subject._targetY)) {
  48.           this.wait(20);
  49.           this.jumpTo(this._index-1);
  50.         }
  51.       } else if (args[1].toUpperCase() == 'AUTO_CANCEL') {
  52.         subject.setTargetAutoCancel('on');
  53.       } else if (args[1].toUpperCase() == 'AUTO_CANCEL_NEAR') {
  54.         subject.setTargetAutoCancel('near');
  55.       } else if (args.length > 2) {
  56.         subject.setTarget(null, eval(args[1]), eval(args[2]));
  57.       } else {
  58.         var target = this.findEvent
  59.           ? this.findEvent(args[1])
  60.           : this.character(eval(args[1]));
  61.         subject.setTarget(target);
  62.       }
  63.     }
  64.   };
  65.  
  66.   var _Game_CharacterBase_initMembers = Game_CharacterBase.prototype.initMembers;
  67.   Game_CharacterBase.prototype.initMembers = function() {
  68.     _Game_CharacterBase_initMembers.call(this);
  69.     this._target = null;
  70.     this._targetX = null;
  71.     this._targetY = null;
  72.     this._targetAutoCancel = false; // 'on', 'near', false
  73.     this._break = false;
  74.   };
  75.  
  76.   Game_CharacterBase.prototype.setTarget = function(target, targetX, targetY) {
  77.     this._target = target;
  78.     if (this._target) {
  79.       this._targetX = this._target.x;
  80.       this._targetY = this._target.y;
  81.     } else {
  82.       this._targetX = targetX;
  83.       this._targetY = targetY;
  84.     }
  85.     this._targetAutoCancel = false;
  86.   };
  87.  
  88.   Game_CharacterBase.prototype.setTargetAutoCancel = function(targetAutoCancel) {
  89.     this._targetAutoCancel = targetAutoCancel;
  90.   }
  91.  
  92.   Game_CharacterBase.prototype.clearTarget = function() {
  93.     this._target = null;
  94.     this._targetX = null;
  95.     this._targetY = null;
  96.   };
  97.  
  98.   Game_CharacterBase.prototype.isNearTarget = function(x, y) {
  99.     var isNear =    Math.abs(this.x - x) <= 1 &&
  100.                     Math.abs(this.y - y) <= 1;
  101.     return isNear;
  102.   }
  103.  
  104.   Game_CharacterBase.prototype.isOnTarget = function(x, y) {
  105.     return this.x == x &&
  106.            this.y == y;
  107.   }
  108.  
  109.   var _Game_CharacterBase_updateStop = Game_CharacterBase.prototype.updateStop;
  110.   Game_CharacterBase.prototype.updateStop = function() {
  111.     _Game_CharacterBase_updateStop.call(this);
  112.  
  113.     if (this._target) {
  114.       this._targetX = this._target.x;
  115.       this._targetY = this._target.y;
  116.     }
  117.  
  118.     if (this._targetX != null) {
  119.       direction = this.findDirectionTo(this._targetX, this._targetY);
  120.       if (direction > 0)
  121.       {
  122.         this.moveStraight(direction);
  123.       }
  124.     }
  125.  
  126.     if (this._target && this._targetAutoCancel) {
  127.       if (this._targetAutoCancel.toUpperCase() === 'ON') {
  128.         if (this.isOnTarget(this._targetX, this._targetY)) {
  129.           this.clearTarget();
  130.         }
  131.       } else if (this._targetAutoCancel.toUpperCase() === 'NEAR') {
  132.         if (this.isNearTarget(this._targetX, this._targetY)) {
  133.           this.clearTarget();
  134.         }
  135.       }
  136.     }
  137.   };
  138. })();

点评

用插件命令 SmartPath eventId x y  发表于 2016-3-18 11:13
VA的moveto不是这样吗?需要走过去的话找插件  发表于 2016-3-18 11:10
谢谢告知,不过这个的效果是直接设置事件位置的,事件直接跳往指定位置,没有移动动画哦  发表于 2016-3-18 10:46
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
871
在线时间
292 小时
注册时间
2010-9-9
帖子
65
3
 楼主| 发表于 2016-3-18 11:17:34 | 只看该作者
翻滚牛宝宝 发表于 2016-3-18 08:09
$gameMap.event(this._eventId).setPosition(x,y)
//=================================================== ...

好的,谢谢大神
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-24 03:56

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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