じ☆ve冰风 发表于 2024-2-15 07:25:38

简易藏宝图插件

将代码复制粘贴到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);
      if(this.item() === $dataItems && $gameMap.mapId() === Number(treasure.mapID)){
      if($gamePlayer.x === Number(treasure.x) && $gamePlayer.y === Number(treasure.y)){
          //$gameParty.gainGold(100);
          $gameParty.gainItem($dataItems, -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在线咨询功能删除,谢谢。
页: [1]
查看完整版本: 简易藏宝图插件