查看: 14471|回复: 20

[原创发布] 自动战斗插件

[复制链接]
梦石
0
星屑
296
在线时间
217 小时
注册时间
2008-12-18
回帖
30
发表于 2018-9-13 23:14:28 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 魏玉龙 于 2018-9-14 17:17 编辑

玩别人做的游戏时,刷野怪有点疲了,就随手写了个自动战斗插件!需要的尽管拿去!

[pre lang="javascript" file="AutoBattle.js"]
/*:
* AutoBattle.js
* @plugindesc 自动战斗
* @author 魏玉龙
* @since 2018.09.12
* @version 1.0
*
* @param enabled
* @desc 开启自动战斗
* @default true
*
* @param command
* @desc 命令显示文字
* @default 自动
*
* @param continous
* @desc 是否连续的自动战斗
* @default false
*
* @param skipMessage
* @desc 跳过战斗中的消息
* @default false
*
* @help
* 此插件提供以下插件命令:
*
* AutoBattle enable
*   开启自动战斗
*
* AutoBattle disable
*   关闭自动战斗
*
* AutoBattle continous true/false
*   是否开启连续的自动战斗
*
* AutoBattle skipMessage true/false
*   是否跳过战斗中的消息
*
*/

(function () {
  var parameters = PluginManager.parameters('AutoBattle');
  var autoBattle = {
    enabled: JSON.parse(parameters['enabled'] || true),
    command: String(parameters['command'] || '自动'),
    continous: JSON.parse(parameters['continous'] || false),
    skipMessage: JSON.parse(parameters['skipMessage'] || false)
  };

  var Game_Temp_prototype_initialize = Game_Temp.prototype.initialize;
  Game_Temp.prototype.initialize = function () {
    Game_Temp_prototype_initialize.call(this);
    this._continousAutoBattle = false;
  };

  var Scene_Battle_prototype_update = Scene_Battle.prototype.update;
  Scene_Battle.prototype.update = function () {
    Scene_Battle_prototype_update.call(this);
    if ($gameTemp._continousAutoBattle && (Input.isTriggered('escape') || Input.isTriggered('cancel'))) {
      SoundManager.playCancel();
      $gameTemp._continousAutoBattle = false;
    }
  }

  var Scene_Battle_prototype_createAllWindows = Scene_Battle.prototype.createAllWindows;
  Scene_Battle.prototype.createAllWindows = function () {
    if (!autoBattle.continous) {
      $gameTemp._continousAutoBattle = false;
    }
    Scene_Battle_prototype_createAllWindows.call(this);
  };

  var Scene_Battle_prototype_createPartyCommandWindow = Scene_Battle.prototype.createPartyCommandWindow;
  Scene_Battle.prototype.createPartyCommandWindow = function () {
    Scene_Battle_prototype_createPartyCommandWindow.call(this);
    if (autoBattle.enabled) {
      this._partyCommandWindow.setHandler('auto', this.commandAutoBattle.bind(this));
    }
  };

  var Scene_Battle_prototype_startPartyCommandSelection = Scene_Battle.prototype.startPartyCommandSelection;
  Scene_Battle.prototype.startPartyCommandSelection = function () {
    if ($gameTemp._continousAutoBattle && !SceneManager.isSceneChanging()) {
      this.commandAutoBattle.call(this);
    } else {
      Scene_Battle_prototype_startPartyCommandSelection.call(this)
    }
  };
  Scene_Battle.prototype.commandAutoBattle = function () {
    $gameParty.battleMembers().forEach(function (member) {
      if (member.canInput()) {
        member.makeAutoBattleActions();
      }
    });
    $gameTemp._continousAutoBattle = true;
    this._partyCommandWindow.deactivate();
    BattleManager.startTurn();
  };
  Scene_Battle.prototype.refreshAutobattlerStatusWindow = function () {
    $gameParty.battleMembers().forEach(function (member) {
      if (member.isAutoBattle()) {
        this._statusWindow.drawItem(member.index)
      }
    });
  };

  var Window_Message_prototype_startPause = Window_Message.prototype.startPause;
  Window_Message.prototype.startPause = function () {
    if ($gameParty.inBattle() && $gameTemp._continousAutoBattle && autoBattle.skipMessage) {
      this.terminateMessage();
    } else {
      Window_Message_prototype_startPause.call(this);
    }
  }

  var Window_PartyCommand_prototype_makeCommandList = Window_PartyCommand.prototype.makeCommandList;
  Window_PartyCommand.prototype.makeCommandList = function () {
    Window_PartyCommand_prototype_makeCommandList.call(this);
    if (autoBattle.enabled) {
      this.addCommand(autoBattle.command, 'auto');
    }
  };

  var Game_Interpreter_prototype_pluginCommand = Game_Interpreter.prototype.pluginCommand;
  Game_Interpreter.prototype.pluginCommand = function (command, args) {
    Game_Interpreter_prototype_pluginCommand.call(this, command, args);
    if (command === "AutoBattle") {
      switch (args) {
        case 'enable':
          autoBattle.enabled = true;
          break
        case 'disable':
          autoBattle.enabled = false;
          break
        case 'continous':
          autoBattle.continous = JSON.parse(args[1]);
          break
        case 'skipMessage':
          autoBattle.continous = JSON.parse(args[1]);
          break
      }
    }
  };
})();[/pre]

评分

参与人数 2赞 +2 收起 理由
heipai + 1 精品文章
白嫩白嫩的 + 1 塞糖

查看全部评分

梦石
0
星屑
3074
在线时间
685 小时
注册时间
2018-6-1
回帖
253
发表于 2018-9-13 23:25:09 | 显示全部楼层
不会用                 
回复

使用道具 举报

梦石
0
星屑
296
在线时间
217 小时
注册时间
2008-12-18
回帖
30
 楼主| 发表于 2018-9-13 23:28:55 | 显示全部楼层
下载后扔到插件目录里,在插件管理器里启用就行了,这很难么?

点评

原来如此 照做了 谢谢  发表于 2018-9-13 23:30
回复

使用道具 举报

梦石
0
星屑
6963
在线时间
1557 小时
注册时间
2011-6-14
回帖
425
发表于 2018-9-13 23:57:00 | 显示全部楼层
话说我想问下和游戏自带的自动战斗有什么不同吗
回复

使用道具 举报

梦石
0
星屑
296
在线时间
217 小时
注册时间
2008-12-18
回帖
30
 楼主| 发表于 2018-9-14 00:04:08 | 显示全部楼层
347780682 发表于 2018-9-13 23:57
话说我想问下和游戏自带的自动战斗有什么不同吗

效果类似梦幻西游那样的游戏挂自动刷经验
回复

使用道具 举报

梦石
0
星屑
7427
在线时间
948 小时
注册时间
2017-9-27
回帖
566
发表于 2018-9-15 10:56:58 | 显示全部楼层
我以为可以自由设置自动战斗的AI,看代码是不能。

点评

你想多了  发表于 2018-9-15 11:00
回复

使用道具 举报

梦石
0
星屑
15294
在线时间
720 小时
注册时间
2011-7-16
回帖
1373

开拓者

发表于 2018-9-17 16:26:46 | 显示全部楼层
不错的插件,看来mv生态日益强大啊
RMMV网络插件,开源免费,内含服务器端,无需强制登录,云数据,弹幕,云存档,排名,兑换码,版本检测,可自由上架下架删除。q群399090587
免打包运行MV游戏,云游戏,安卓App雷神游戏厅,在线玩游戏,上传下载游戏
开源游戏:重装机兵之重装归来【RMMV制作】全球首款按照美剧分季分集的方式发布的游戏
体素画 -- MV画3D像素图的画板
RMMV显示3D模型和场景的插件
RMMV显示spine骨骼动画的插件
RMMV秘密通道插件
突破敌群数量上限8个的插件
在rmmv中显示gif动态图片的插件
一款可以在mv游戏界面的任意位置显示任意文字的插件
RMMV Toast 插件 带物品得失提示,可以设置开启关闭 兼容yep itemcore
制作一个改名卡道具插件、调整标题页面菜单的插件、在标题页面之前显示大段文字的插件、标题页面显示版本号的插件
物品得失自动提示自动上色自动换行插件
我的Q群 663889472
另外,我的插件、范例、游戏都在这里
回复

使用道具 举报

梦石
0
星屑
287
在线时间
33 小时
注册时间
2018-9-30
回帖
23
发表于 2018-10-2 17:59:06 | 显示全部楼层
有没有跳过战斗动画的插件,就是和怪物战斗立马出结果的。
每个问题的答案,都在你灵魂深处
回复

使用道具 举报

梦石
0
星屑
296
在线时间
217 小时
注册时间
2008-12-18
回帖
30
 楼主| 发表于 2018-10-3 10:07:20 | 显示全部楼层
yushao1999 发表于 2018-10-2 17:59
有没有跳过战斗动画的插件,就是和怪物战斗立马出结果的。

嗯,我也有这个意思,自动战斗还是有点浪费时间了,想做一个直接结束战斗的调试插件!
但问题是,有些战斗里是有剧情对话和一些变量处理的,甚至可能有选项什么的!
直接pass掉有点不合适,还没想好怎么处理。
回复

使用道具 举报

梦石
0
星屑
151
在线时间
99 小时
注册时间
2018-1-8
回帖
11
发表于 2018-12-8 01:15:01 | 显示全部楼层
能不能分享一下直接跳过战斗的插件啊,中间过程不用管的那种
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部