查看: 4165|回复: 2

[已经解决] 有没有角色死亡后替补队员上场战斗的脚本

[复制链接]
梦石
0
星屑
230
在线时间
174 小时
注册时间
2016-2-24
回帖
83
发表于 2016-9-30 23:30:14 | 显示全部楼层 |阅读模式

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

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

×
如题。试了一些办法都不太好
梦石
0
星屑
311
在线时间
204 小时
注册时间
2007-2-4
回帖
1772
发表于 2016-10-1 00:15:03 | 显示全部楼层
[pre lang="javascript"]//=============================================================================
// Torigoya_ReplaceDeadMember.js
//=============================================================================

/*:
* @plugindesc Replace a back member from dead actors in BattleScene.
* @author ru_shalm
*/

/*:ja
* @plugindesc 戦闘中、死亡したメンバーを自動的に控えメンバーに入れ替えます。
* @author ru_shalm
*/

(function (global) {
    // 生存メンバーが先頭に集まるように並び替え
    var sortDeadMember = function () {
        var allMembers = $gameParty.allMembers();
        for (var i = 0; i < allMembers.length - 1; ++i) {
            if (!allMembers.isDead()) continue;

            for (var j = i + 1; j < allMembers.length; ++j) {
                if (allMembers[j].isDead()) continue;
                $gameParty.swapOrder(i, j);
                allMembers = $gameParty.allMembers(); // 取り直す
                break;
            }
        }
    };

    // 死んだ戦闘参加中メンバーを控えと入れ替え
    var swapDeadMember = function () {
        var allMembers = $gameParty.allMembers();
        for (var i = 0; i < $gameParty.maxBattleMembers(); ++i) {
            if (!allMembers) break;
            if (!allMembers.isDead()) continue;

            for (var j = $gameParty.maxBattleMembers(); j < allMembers.length; ++j) {
                if (allMembers[j].isDead()) continue;
                $gameParty.swapOrder(i, j);
                allMembers = $gameParty.allMembers(); // 取り直す
                break;
            }
        }
    };

    var upstream_BattleManager_initMembers = BattleManager.initMembers;
    BattleManager.initMembers = function () {
        sortDeadMember();
        upstream_BattleManager_initMembers.bind(this)();
    };

    var upstream_BattleManager_endAction = BattleManager.endAction;
    BattleManager.endAction = function () {
        swapDeadMember();
        upstream_BattleManager_endAction.bind(this)();
    };

    global.Torigoya = (global.Torigoya || {});
    global.Torigoya.ReplaceDeadMember = {};
})(this);
[/pre]

评分

参与人数 2星屑 +20 收起 理由
kitarr + 10 塞糖
燃烧绳命 + 10 塞糖

查看全部评分

新しい誕生祝いだッ!
回复 1 0

使用道具 举报

梦石
0
星屑
230
在线时间
174 小时
注册时间
2016-2-24
回帖
83
 楼主| 发表于 2016-10-1 02:32:18 | 显示全部楼层
玄天 发表于 2016-10-1 00:15
//=============================================================================
// Torigoya_ReplaceD ...

十分感谢
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部