Project1

标题: 怎样通过修改代码跳过战斗时的队伍命令和角色命令? [打印本页]

作者: 靖康之变KK100    时间: 2020-7-24 20:54
标题: 怎样通过修改代码跳过战斗时的队伍命令和角色命令?
为了追求更简洁的战斗,想做成进入战斗直接展示技能界面(类似Evenicle2)

选择技能后就直接选择敌人打过去,跳过前面的两层选项(队伍命令PartyCommandSelection,角色命令ActorCommandSelection)
然后把普攻、防御和逃跑直接做成技能

捣鼓了好久只能把队伍命令跳过了(就是刚开始选战斗和逃跑的):
【把Scene_Battle 里的 startPartyCommandSelection 前三行复制到 changeInputWindow 里面,
   changeInputWindow的条件语句改成直接执行 startActorCommandSelection 那句,
   因为刚开始_actor是-1,所以要判断一下把BattleManager.selectNextCommand()加上巴拉巴拉……】本人东拼西凑的代码最多就走到这里了

接下来因为不知道从角色命令(选择攻击、技能、防御、道具等等的窗口)到技能窗口(_skillWindow)中间到底经历了什么,
所以尝试修改代码一直失败,所以来向大佬们求助了

请教:
1、这个设想有没有现成插件可以实现?(看了YEP和MOG,基本排除这两个可能)
2、最后使用道具的选项没办法做成技能,能不能和SkillList一起放在同一个窗口?
3、有没有关于系统代码的详细教程或者手册可以参考学习?(找了F1帮助,没有或没找到细化到Scene_Battle、BattleManager这样的)

作者: 远去之情    时间: 2020-7-24 21:53
直接做成ARPG不就行了,连进入战斗画面都省了。
按1攻击,2防御,3456技能。7喝药
想法略奇葩,楼主一定是做饭烧菜一锅炖,整理衣物什么的,衣裤鞋帽通通丢一起的人
省事!
作者: 靖康之变KK100    时间: 2020-7-27 14:02
想破头也没找到其他的方法,暂时只能做到这样了

  1. // JavaScript source code
  2. /*:
  3. * @plugindesc 简洁战斗
  4. * @author 靖康
  5. * @help
  6. * 将分布式的战斗窗口整合成一个,战斗直接打开技能窗口
  7. * 攻击、防御和逃跑命令需要额外加在技能里。目前没办法使用道具,除非想办法把道具加入技能
  8. * 技能类型被妥协了,也就是只能使用1号技能类型了,切换技能类型不会做
  9. *
  10. * 垃圾小白代码,几乎没有兼容性
  11. */


  12. Scene_Battle.prototype.changeInputWindow = function() {
  13.     if (BattleManager.isInputting()) {
  14.         if (!BattleManager.actor()) {BattleManager.selectNextCommand();}
  15.         this.refreshStatus();
  16.         this._statusWindow.deselect();
  17.         this._statusWindow.open();//取消队伍命令,把它额外做了的工作搬出来

  18.         this._statusWindow.select(BattleManager.actor().index());//选定将要行动的角色

  19.         this._skillWindow.setStypeId(1);//不知道怎么读取角色技能类型,直接设为1
  20.         this.commandSkill();//选中技能时的回调
  21.         //this.startActorCommandSelection();
  22.         /* if (BattleManager.actor()) {
  23.             this.startActorCommandSelection();
  24.         } else {
  25.             this.startPartyCommandSelection();
  26.         }*/
  27.     } else {
  28.         this.endCommandSelection();
  29.     }
  30. };

  31. Scene_Battle.prototype.commandSkill = function() {
  32.     this._skillWindow.setActor(BattleManager.actor());
  33.     //this._skillWindow.setStypeId(this._actorCommandWindow.currentExt());//移到外面做,其实并没有什么意义
  34.     this._skillWindow.refresh();
  35.     this._skillWindow.show();
  36.     this._skillWindow.activate();
  37. };

  38. Scene_Battle.prototype.onSkillCancel = function() { //取消你的取消
  39.     //this._skillWindow.hide();
  40.     //this._actorCommandWindow.activate();

  41.     //this._skillWindow.setStypeId(1);//把取消改为查看下一个技能类型?

  42. };
复制代码


基本实现了直接打开技能,但技能类型判定实在不会就直接阉割了
作者: 岸波白野    时间: 2021-5-30 09:37
靖康之变KK100 发表于 2020-7-27 14:02
想破头也没找到其他的方法,暂时只能做到这样了

万分感谢您的分享和思路!!太感谢了,我也是想要这样的效果,研究了好几天。这个非常实用。
不需要理会楼上这种没理解别人需求就开始阴阳怪气的




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1