查看: 7543|回复: 7

[已经解决] 怎么让角色停在那里不移动?

[复制链接]
梦石
2
星屑
1239
在线时间
355 小时
注册时间
2014-9-27
回帖
98
发表于 2016-1-30 22:43:24 | 显示全部楼层 |阅读模式

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

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

×
RT ,就是想要达到开启一个开关后可以让玩家停在原地不能动,就算按了方向键,鼠标点击也不动。怎么破~
梦石
0
星屑
60
在线时间
306 小时
注册时间
2014-8-5
回帖
403
发表于 2016-1-30 22:46:55 | 显示全部楼层
.在事件页里设置玩家的移动路线:等待
  点我进入    
       ↓      
回复

使用道具 举报

梦石
2
星屑
1239
在线时间
355 小时
注册时间
2014-9-27
回帖
98
 楼主| 发表于 2016-1-30 22:55:48 | 显示全部楼层
夏末渐离 发表于 2016-1-30 22:46
.在事件页里设置玩家的移动路线:等待

明白了,只要设置公共事件在开关开启时并行处理循环玩家的移动路线并等待,就可以使玩家固定在那里~
但是有没有插件类型的呢?
回复

使用道具 举报

梦石
0
星屑
1232
在线时间
1017 小时
注册时间
2011-4-30
回帖
1464
发表于 2016-1-30 23:05:46 | 显示全部楼层

  1. //输入 移动
  2. Game_Player.prototype.moveByInput = function() {
  3.     //假设是 120号开关打开时才能移动
  4.     if (!this.isMoving() && this.canMove() &&  $gameSwitches.value(120) ) {
  5.         var direction = this.getInputDirection();
  6.         if (direction > 0) {
  7.             $gameTemp.clearDestination();
  8.         } else if ($gameTemp.isDestinationValid()){
  9.             var x = $gameTemp.destinationX();
  10.             var y = $gameTemp.destinationY();
  11.             direction = this.findDirectionTo(x, y);
  12.         }
  13.         if (direction > 0) {
  14.             this.executeMove(direction);
  15.         }
  16.     }
  17. };
复制代码
回复

使用道具 举报

梦石
0
星屑
60
在线时间
306 小时
注册时间
2014-8-5
回帖
403
发表于 2016-1-30 23:33:23 | 显示全部楼层
汪汪 发表于 2016-1-30 23:05
  1. var XM_160130_canMove=Game_Player.prototype.canMove;
  2. Game_Player.prototype.canMove=function() {
  3.     if ($gameSwitches.value(120))
  4.     {
  5.         return false;
  6.     }
  7.     XM_160130_canMove.call(this);
  8.     return true;
  9. };
复制代码

点评

......好吧.  发表于 2016-1-31 01:17
因为开关本来默认就是false的呀。你加在那儿且不是使moveByInput这个方法失效了?  发表于 2016-1-31 01:08
话说……楼下的话我的哪里有错误的说?  发表于 2016-1-31 00:35
  点我进入    
       ↓      
回复

使用道具 举报

梦石
2
星屑
1239
在线时间
355 小时
注册时间
2014-9-27
回帖
98
 楼主| 发表于 2016-1-31 00:00:42 | 显示全部楼层
汪汪 发表于 2016-1-30 23:05

为什么我开了120号开关可是人物还是不能移动?
回复

使用道具 举报

梦石
2
星屑
1239
在线时间
355 小时
注册时间
2014-9-27
回帖
98
 楼主| 发表于 2016-1-31 00:06:49 | 显示全部楼层
夏末渐离 发表于 2016-1-30 23:33

目的达到了~而且换了开关号,测试多次也没有BUG~多谢啦
回复

使用道具 举报

梦石
0
星屑
1232
在线时间
1017 小时
注册时间
2011-4-30
回帖
1464
发表于 2016-1-31 01:10:37 | 显示全部楼层
黑or白 发表于 2016-1-31 00:06
目的达到了~而且换了开关号,测试多次也没有BUG~多谢啦 ...

好吧.上一个有的地方没有考虑.....
@夏末渐离 原来返回的结果需要继承的..
  1. var XM_160130_canMove=Game_Player.prototype.canMove;
  2. Game_Player.prototype.canMove=function() {
  3.     if ($gameSwitches.value(120))
  4.     {
  5.         return false;
  6.     }
  7.    
  8.     return XM_160130_canMove.call(this);
  9. };
复制代码
  1. var XM_160130_canMove=Game_Player.prototype.canMove;
  2. Game_Player.prototype.canMove=function() {
  3.     return !$gameSwitches.value(120) &&  XM_160130_canMove.call(this);
  4. };
复制代码

点评

于是晚安了  发表于 2016-1-31 01:31
call大概是使用原方法。但现方法不会直接返回原方法的返回值。以及……什么是五行缺水计划……  发表于 2016-1-31 01:26
我只记得call继承的是方法  发表于 2016-1-31 01:21
已加入五行缺水计划。  发表于 2016-1-31 01:20
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部