//=============================================================================
// RPG Maker MZ -
//=============================================================================
/*:
* @target MZ
* @plugindesc 简单的藏宝图插件,检查队伍与指定坐标是否重叠,重叠则获得奖励,奖励需要在公共事件中添加对应的事件即可。
* @author A.I
* @url
* @orderAfter
* @plugindesc 检查队伍与指定坐标是否重叠
* @param treasures
* @text 藏宝图信息
* @type struct[]
* @desc 指定藏宝图的信息(地图ID、X轴和Y轴,以及物品ID)。
* @default ["{\"mapID\": \"1\",\"x\": \"5\",\"y\": \"10\",\"itemID\": \"1\"}","{\"mapID\": \"2\",\"x\": \"20\",\"y\": \"15\",\"itemID\": \"2\"}","{\"mapID\": \"3\",\"x\": \"10\",\"y\": \"5\",\"itemID\": \"3\"}","{\"mapID\": \"4\",\"x\": \"15\",\"y\": \"20\",\"itemID\": \"4\"}","{\"mapID\": \"5\",\"x\": \"25\",\"y\": \"30\",\"itemID\": \"5\"}"]
*
* @help Treasure.js
*
* 简易藏宝图插件
* 检查队伍与指定坐标是否重叠,如果是则获得奖励。
* 奖励内容和概率在公共事件中设置,物品设置为非消耗品。
*
*/
(function() {
var parameters = PluginManager.parameters('Treasure');
var treasures = JSON.parse(parameters['treasures'] || "[]");
var _Scene_Item_useItem = Scene_Item.prototype.useItem;
Scene_Item.prototype.useItem = function() {
_Scene_Item_useItem.call(this);
for (var i = 0; i < treasures.length; i++) {
var treasure = JSON.parse(treasures[i]);
if (this.item() === $dataItems[treasure.itemID] && $gameMap.mapId() === Number(treasure.mapID)) {
if ($gamePlayer.x === Number(treasure.x) && $gamePlayer.y === Number(treasure.y)) {
//$gameParty.gainGold(100);
$gameParty.gainItem($dataItems[treasure.itemID], -1);
$gameMessage.add('你发现了宝藏!');
} else if ($gamePlayer.x < Number(treasure.x) && $gamePlayer.y < Number(treasure.y)) {
$gameMessage.add('向右下一些');
} else if ($gamePlayer.x < Number(treasure.x) && $gamePlayer.y > Number(treasure.y)) {
$gameMessage.add('向右上一些');
} else if ($gamePlayer.x > Number(treasure.x) && $gamePlayer.y < Number(treasure.y)) {
$gameMessage.add('向左下一些');
} else if ($gamePlayer.x > Number(treasure.x) && $gamePlayer.y > Number(treasure.y)) {
$gameMessage.add('向左上一些');
} else if ($gamePlayer.x === Number(treasure.x) && $gamePlayer.y < Number(treasure.y)) {
$gameMessage.add('向下一些');
} else if ($gamePlayer.x === Number(treasure.x) && $gamePlayer.y > Number(treasure.y)) {
$gameMessage.add('向上一些');
} else if ($gamePlayer.y === Number(treasure.y) && $gamePlayer.x < Number(treasure.x)) {
$gameMessage.add('向右一些');
} else if ($gamePlayer.y === Number(treasure.y) && $gamePlayer.x > Number(treasure.x)) {
$gameMessage.add('向左一些');
}
return;
}
}
$gameMessage.add('宝藏不在这个地图');
};
})();