| 赞 | 11 |
| VIP | |
| 好人卡 | |
| 积分 | 16 |
| 经验 | |
| 最后登录 | 2024-4-21 |
| 在线时间 | 253 小时 |
- 梦石
- 0
- 星屑
- 1623
- 在线时间
- 253 小时
- 注册时间
- 2020-1-24
- 回帖
- 35
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有账号?注册会员
×
本帖最后由 中二幻者 于 2023-5-31 20:04 编辑
将代码复制粘贴到txt文本中,然后改成Treasure.js就可以了。
这个插件可以设置多个藏宝图,为每一个藏宝图设置对应的地图坐标。
奖励和概率之类的就在公共事件里自己设置,弄好之后在物品的效果那把这个公共事件添加上就行,物品记得设置成非消耗品。
最后说一句AI牛逼,有时间继续让AI完善这个插件,比如把奖励的概率啥的都弄在插件里。
[pre lang="javascript"]//=============================================================================
// 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);
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('宝藏不在这个地图');
};
})();[/pre] |
|