查看: 3178|回复: 14

[有事请教] 有没有返回上一地图的位置

[复制链接]
梦石
0
星屑
560
在线时间
77 小时
注册时间
2019-5-23
回帖
38
发表于 2019-6-1 09:54:13 | 显示全部楼层 |阅读模式

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

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

×
想自制地图功能,但有点别的想法,于是不打算用插件,就想问问有没有我移动到另一张地图后能返回上一地图原来位置的插件
梦石
0
星屑
12161
在线时间
4435 小时
注册时间
2014-4-11
回帖
5616

开拓者

发表于 2019-6-1 10:29:39 | 显示全部楼层
移动前把上一地图的ID,坐标,先存到变量里。
之后根据这变量移动回来
回复

使用道具 举报

梦石
0
星屑
560
在线时间
77 小时
注册时间
2019-5-23
回帖
38
 楼主| 发表于 2019-6-1 10:50:16 | 显示全部楼层
yang1zhi 发表于 2019-6-1 10:29
移动前把上一地图的ID,坐标,先存到变量里。
之后根据这变量移动回来

可是也不能每次打开地图都要存一个变量呀

点评

好像出了点问题  发表于 2019-6-1 17:09
貌似可以,谢谢,顺便问下知不知道MOG的天气插件怎么弄GIF啊,设置好后他跟我说缺少PNG文件  发表于 2019-6-1 16:27
传送前存一下坐标就行,不用插件  发表于 2019-6-1 16:23
不是,选地图选项后就传送到世界地图,按返回键返回原来位置,就是需要一个办法让系统捕捉到我传送前的坐标,估计需要用到插件  发表于 2019-6-1 15:26
你说的是界面吧。push添加的界面返回都是返到上一层的  发表于 2019-6-1 14:25
回复

使用道具 举报

梦石
0
星屑
560
在线时间
77 小时
注册时间
2019-5-23
回帖
38
 楼主| 发表于 2019-6-1 17:05:14 | 显示全部楼层
我想问下为什么我获取了位置信息,返回的时候会到一个一片漆黑的地方,而且貌似没有边界
回复

使用道具 举报

梦石
0
星屑
560
在线时间
77 小时
注册时间
2019-5-23
回帖
38
 楼主| 发表于 2019-6-1 17:08:09 | 显示全部楼层
●变量操作:#0002X=玩家的地图X
●变量操作:#0003Y=玩家的地图Y
◆获取指定位置的信息:位置,区域ID,({X},{Y})
◆场所移动:世界(22,11)






◆如果:按键【确定】正被按着
场所移动:{位置}({X},{Y})方向:下)
:结束
回复

使用道具 举报

梦石
0
星屑
560
在线时间
77 小时
注册时间
2019-5-23
回帖
38
 楼主| 发表于 2019-6-1 17:12:18 | 显示全部楼层
解决了
还要一个地图ID变量
回复

使用道具 举报

梦石
0
星屑
9867
在线时间
581 小时
注册时间
2017-9-28
回帖
203
发表于 2019-6-1 17:55:12 | 显示全部楼层
本帖最后由 hyrious 于 2019-6-1 17:56 编辑

练习了一下写 js 插件。。。比事件存位置的好处是能多次返回(

用法是在场所移动前执行插件指令 TransferingStack push(如果打开了插件选项“自动保存位置”则不要执行),然后返回的时候执行插件指令 TransferingStack pop 。

[pre lang="javascript" file="TransferingStack.js"]//=============================================================================
// TransferingStack.js
//=============================================================================

/*:
* @plugindesc Storing location before transfering.
* @author hyrious
*
* @param Auto Push Location
* @desc Run 'TransferingStack push' automatically before any transfering.
* @type boolean
* @default true
*
* @param Fade Type
* @desc The fade effect type of transfering.
* 0 - black. 1 - white. any other number - none.
* @type number
* @default 0
*
* @help This plugin provides the following plugin commands.
*
*   TransferingStack push   # Save current location (push to stack)
*   TransferingStack pop    # Remove and transfer to the last location
*   TransferingStack pop!   # Remove the last location without transfering
*   TransferingStack clear  # Remove all things in the stack
*   TransferingStack debug  # Log the stack to console
*/

/*:zh
* @plugindesc “回到上一个位置”。
* @author hyrious
*
* @param Auto Push Location
* @text 自动保存位置
* @desc 在场所移动前自动执行一次 TransferingStack push 。
* @type boolean
* @default true
*
* @param Fade Type
* @text 渐变样式
* @desc 场所移动时的渐变(变黑、变白等)。
* 0 - 变黑. 1 - 变白. 任何其他数字 - 无渐变.
* @type number
* @default 0
*
* @help 这个插件提供了以下事件指令:
*
*   TransferingStack push   # 保存当前位置(入栈)
*   TransferingStack pop    # 返回到上一个位置(出栈)
*   TransferingStack pop!   # 出栈,但不执行场所移动
*   TransferingStack clear  # 清空位置栈
*   TransferingStack debug  # Log the stack to console
*/

(function() {

var parameters = PluginManager.parameters('TransferingStack');
var autoPushLocation = Boolean(parameters['Auto Push Location'] || 'true');
var fadeType = Number(parameters['Fade Type'] || '0');

var transferingStack = [];
function pushLocation() {
    var mapId = $gameMap.mapId(),
        x = $gamePlayer._realX,
        y = $gamePlayer._realY,
        d = $gamePlayer._direction;
    transferingStack.push([mapId, x, y, d, fadeType]);
}

var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
var _Game_Player_reserveTransfer = Game_Player.prototype.reserveTransfer;

Game_Interpreter.prototype.pluginCommand = function(command, args) {
    _Game_Interpreter_pluginCommand.call(this, command, args);
    if (command === 'TransferingStack') {
        switch (args[0]) {
            case 'push':
                pushLocation();
                break;
            case 'pop':
                if (transferingStack.length) {
                    var last = transferingStack.length - 1;
                    var payload = transferingStack[last];
                    _Game_Player_reserveTransfer.apply($gamePlayer, payload);
                }
            case 'pop!':
                transferingStack.pop();
                break;
            case 'clear':
                transferingStack = [];
                break;
            case 'debug':
                console.log("transferingStack: [(mapId, x, y, d, fadeType)]");
                console.log(transferingStack);
                break;
        }
    }
};

Game_Player.prototype.reserveTransfer = function(mapId, x, y, d, fadeType) {
    if (!this._transferring && autoPushLocation) {
        pushLocation();
    }
    _Game_Player_reserveTransfer.call(this, mapId, x, y, d, fadeType);
}

var _DataManager_setupNewGame = DataManager.setupNewGame;

DataManager.setupNewGame = function() {
    _DataManager_setupNewGame.call(DataManager);
    transferingStack = [];
}

})();[/pre]

点评

66666  发表于 2019-6-1 17:57
喵喵喵
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部