Project1
标题:
自动返回上一张地图场景(自动出门)插件(带视频教程)
[打印本页]
作者:
if216
时间:
2018-2-20 23:54
标题:
自动返回上一张地图场景(自动出门)插件(带视频教程)
本帖最后由 if216 于 2018-2-21 00:11 编辑
视频演示:
http://v.youku.com/v_show/id_XMz ... m=a2hzp.8244740.0.0
设计初衷:
朋友们有没有遇到过,进入一个房子选 场所移动,出来时,还要选择回到之前进来的场景以及位置,这种麻烦事?
现在每张门,你只需要设置进入点,返回的时候用outdoor插件命令几就可以返回了。
原理:
进门时将进门的mapid,x,y作为键,目的地的mapid,x,y做为值,存入player成员变量。那么没进入一张门,对应就可以用outdoor命令出门了。
注意:
你不能直接outdoor你从没有进过的门。所以如果有两个门,
你从后门进入,再从前门出是不行的。像这种就不要用outdoor命令了。
这个插件适用于一个大房间一条道走到黑的,只有一个入口和对应一个出口的
情况。
所幸70-90%的房间都是单向的。应该适用。或者自己做的额外的战场什么的,
返回也可以用。
而且插件也很灵活,想用就用,不想用就用默认的移动场所的命令也可以。
像是树结构的模型。
还有一点需注意,进入点设置的时候一定要选择出去的同一个点
== Terms of Use ==
- 在制作名单中注明引用插件的名字LCK_AutoBackOldMap以及作者名LCK(if216)
- 使用本插件引起的一切软件毁坏,作者不负任何责任
- 商用、非商用皆免费
代码:
(function() {
// Plugin commands
var GI_pluginCommand = Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function(command, args) {
GI_pluginCommand.call(this, command, args);
if(command.toLowerCase() === "outdoor") {
var direct,fadetype;
if (isNaN(args[0]))
{
direct = args[0];
}
else direct = 2;
if (isNaN(args[1]))
{
fadetype = args[1];
}
else fadetype = 0;
if(direct==undefined) direct = 2;
if(fadetype==undefined) fadetype = 0;
$gamePlayer.reserveTransferOldMap(direct,fadetype);
}
};
var initPlayer = Game_Character.prototype.initialize;
Game_Player.prototype.initialize = function() {
initPlayer.call(this);
this.doors = [];
this.setTransparent($dataSystem.optTransparent);
};
var rsmap = Game_Player.prototype.reserveTransfer;
Game_Player.prototype.reserveTransfer = function(mapId, x, y, d, fadeType) {
rsmap.call(this);
var a = mapId+','+x+','+y;
var b = $gameMap._mapId+','+this._x+','+this._y;
this.doors[a] = b;
this._transferring = true;
this._newMapId = mapId;
this._newX = x;
this._newY = y;
this._newDirection = d;
this._fadeType = fadeType;
};
Game_Player.prototype.reserveTransferOldMap = function(d, fadeType) {
var key_s = $gameMap._mapId+','+this._x+','+this._y;
var value_O = this.doors[key_s];
if(value_O==undefined || value_O.length == 0)
{
return;
}
var a = [];
a = value_O.split(",");
this._transferring = true;
this._newMapId = parseInt(a[0]);
this._newX = parseInt(a[1]);
this._newY = parseInt(a[2]);
this._newDirection = d;
this._fadeType = fadeType;
this.doors.outDoorSuccessed = true;
};
})();
LCK_AutoBackOldMap.zip
2018-2-21 00:01 上传
点击文件名下载附件
1.68 KB, 下载次数: 87
作者:
微笑的迪妮莎
时间:
2018-2-21 00:19
谢谢大佬辛苦分享!
作者:
walf_man
时间:
2018-2-22 17:41
非常好的插件,之前就很纳闷为何门不能默认是门,而是要手动制作两遍
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1