将代码复制粘贴到txt文本中,然后改成Treasure.js就可以了。
这个插件可以设置多个藏宝图,为每一个藏宝图设置对应的地图坐标。
奖励和概率之类的就在公共事件里自己设置,弄好之后在物品的效果那把这个公共事件添加上就行,物品记得设置成非消耗品。
最后说一句AI牛逼,有时间继续让AI完善这个插件,比如把奖励的概率啥的都弄在插件里。
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[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('你发现了宝藏!');
- }elseif($gamePlayer.x < Number(treasure.x) && $gamePlayer.y < Number(treasure.y)){
- $gameMessage.add('向右下一些');
- }elseif($gamePlayer.x < Number(treasure.x) && $gamePlayer.y > Number(treasure.y)){
- $gameMessage.add('向右上一些');
- }elseif($gamePlayer.x > Number(treasure.x) && $gamePlayer.y < Number(treasure.y)){
- $gameMessage.add('向左下一些');
- }elseif($gamePlayer.x > Number(treasure.x) && $gamePlayer.y > Number(treasure.y)){
- $gameMessage.add('向左上一些');
- }elseif($gamePlayer.x === Number(treasure.x) && $gamePlayer.y < Number(treasure.y)){
- $gameMessage.add('向下一些');
- }elseif($gamePlayer.x === Number(treasure.x) && $gamePlayer.y > Number(treasure.y)){
- $gameMessage.add('向上一些');
- }elseif($gamePlayer.y === Number(treasure.y) && $gamePlayer.x < Number(treasure.x)){
- $gameMessage.add('向右一些');
- }elseif($gamePlayer.y === Number(treasure.y) && $gamePlayer.x > Number(treasure.x)){
- $gameMessage.add('向左一些');
- }
- return;
- }
- }
- $gameMessage.add('宝藏不在这个地图');
- };
- })();
复制代码
本帖来自P1论坛作者中二幻者,因Project1站服务器在国外有时候访问缓慢不方便作者交流学习,经联系P1站长fux2同意署名转载一起分享游戏制作经验,共同为国内独立游戏作者共同创造良好交流环境,原文地址: https://rpg.blue/forum.php?mod=viewthread&tid=493335 若有侵权,发帖作者可联系底部站长QQ在线咨询功能删除,谢谢。 |