Project1

标题: 如何在战斗中实现角色死亡后切换? [打印本页]

作者: 神风炽羽    时间: 2020-3-25 16:38
标题: 如何在战斗中实现角色死亡后切换?
如何在战斗中实现角色死亡后切换,并且限制角色数量而不会现有的角色丢失。就是仓库背包两边存放。同时可以死亡后切换。只有背包中全部死光,战斗才会结束。请问这怎么做?
顺带有没有人能理解?这个论坛唯一一个发布的mv对战插件。(他本来是发布的游戏,但是他游戏中那个插件拥有联网对战功能。有人能理解吗?或者有人能重新写一写吗?)
作者: 寂静的夜里    时间: 2020-3-25 16:38
JAVASCRIPT 代码复制
  1. //=============================================================================
  2. // Torigoya_ReplaceDeadMember.js
  3. //=============================================================================
  4.  
  5. /*:
  6.  * @plugindesc Replace a back member from dead actors in BattleScene.
  7.  * @author ru_shalm
  8.  */
  9.  
  10. /*:ja
  11.  * @plugindesc 戦闘中、死亡したメンバーを自動的に控えメンバーに入れ替えます。
  12.  * @author ru_shalm
  13.  */
  14.  
  15. (function (global) {
  16.     // 生存メンバーが先頭に集まるように並び替え
  17.     var sortDeadMember = function () {
  18.         var allMembers = $gameParty.allMembers();
  19.         for (var i = 0; i < allMembers.length - 1; ++i) {
  20.             if (!allMembers[i].isDead()) continue;
  21.  
  22.             for (var j = i + 1; j < allMembers.length; ++j) {
  23.                 if (allMembers[j].isDead()) continue;
  24.                 $gameParty.swapOrder(i, j);
  25.                 allMembers = $gameParty.allMembers(); // 取り直す
  26.                 break;
  27.             }
  28.         }
  29.     };
  30.  
  31.     // 死んだ戦闘参加中メンバーを控えと入れ替え
  32.     var swapDeadMember = function () {
  33.         var allMembers = $gameParty.allMembers();
  34.         for (var i = 0; i < $gameParty.maxBattleMembers(); ++i) {
  35.             if (!allMembers[i]) break;
  36.             if (!allMembers[i].isDead()) continue;
  37.  
  38.             for (var j = $gameParty.maxBattleMembers(); j < allMembers.length; ++j) {
  39.                 if (allMembers[j].isDead()) continue;
  40.                 $gameParty.swapOrder(i, j);
  41.                 allMembers = $gameParty.allMembers(); // 取り直す
  42.                 break;
  43.             }
  44.         }
  45.     };
  46.  
  47.     var upstream_BattleManager_initMembers = BattleManager.initMembers;
  48.     BattleManager.initMembers = function () {
  49.         sortDeadMember();
  50.         upstream_BattleManager_initMembers.bind(this)();
  51.     };
  52.  
  53.     var upstream_BattleManager_endAction = BattleManager.endAction;
  54.     BattleManager.endAction = function () {
  55.         swapDeadMember();
  56.         upstream_BattleManager_endAction.bind(this)();
  57.     };
  58.  
  59.     global.Torigoya = (global.Torigoya || {});
  60.     global.Torigoya.ReplaceDeadMember = {};
  61. })(this);

作者: 神风炽羽    时间: 2020-3-25 19:03
寂静的夜里 发表于 2020-3-25 18:34
//=============================================================================
// Torigoya_ReplaceD ...

敢问大佬这一段是干什么的?

作者: 寂静的夜里    时间: 2020-3-25 22:56
这不就是你想要的死亡后替换吗?
作者: 神风炽羽    时间: 2020-3-26 08:15
寂静的夜里 发表于 2020-3-25 22:56
这不就是你想要的死亡后替换吗?

虽然不是我想要的,不过基本达到感谢大佬的帮助。
作者: 神风炽羽    时间: 2020-3-26 10:45
那么让我提一个加过分的要求。能否?死亡的时候让玩家自己选择切换。
作者: 寂静的夜里    时间: 2020-3-27 14:40
2L的插件有效,楼主结贴。




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