查看: 5559|回复: 6

[原创发布] 再动(额外回合)系统

[复制链接]
梦石
0
星屑
50
在线时间
74 小时
注册时间
2016-3-24
回帖
14
发表于 2016-11-18 13:20:03 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 洛林 于 2016-11-18 13:20 编辑

再动系统令灵感来自7龙传说。是指一个角色进入额外回合。在这个回合中,你可以输入指令,控制这个角色的行动,且只有这个角色可以行动,敌人和其他角色都不能行动。之后,继续进行正常的回合。
此外,额外回合不计数,也就是说不改变总回合数,也不影响状态持续时间。

一开始以为很麻烦,结果发现很简单……

首先,标记额外回合和行动者:
[pre lang="javascript"]BattleManager.IsExtraTurn = function() {
    return this._extra;
};

BattleManager.ExtraActor = function() {
    return this._extraActor;
};[/pre]

额外回合中输入指令:
[pre lang="javascript"]BattleManager.startInput = function() {
    this._phase = 'input';
    if (this.IsExtraTurn()) {
        this._extraActor.makeActions();
        this.clearActor();
        return;
    }
    $gameParty.makeActions();
    $gameTroop.makeActions();
    this.clearActor();
    if (this._surprise || !$gameParty.canInput()) {
        this.startTurn();
    }
};[/pre]

要让只有这一个单位可以行动,让GameParty只有这个角色就可以了
[pre lang="javascript"]Game_Party.prototype.allMembers = function() {
    if (BattleManager.IsExtraTurn()) {
        return [BattleManager.ExtraActor()];
    }
    return this._actors.map(function(id) {
        return $gameActors.actor(id);
    });
};[/pre]

回到正常回合
[pre lang="javascript"]BattleManager.endTurn = function() {
    if (this.IsExtraTurn()) {
        this._extra = false;
        this.startTurn();
        return;
    }
    this._phase = 'turnEnd';
    this._preemptive = false;
    this._surprise = false;
    this.allBattleMembers().forEach(function(battler) {
        battler.onTurnEnd();
        this.refreshStatus();
        this._logWindow.displayAutoAffectedStatus(battler);
        this._logWindow.displayRegeneration(battler);
    }, this);
};[/pre]

接口:
[pre lang="javascript"]Game_BattlerBase.prototype.TakeExtraTurn = function() {
    BattleManager._extra = true;
    BattleManager._extraActor = this;
    BattleManager.startInput();
};[/pre]

使用时用 Actor.TakeExtraTurn() 即可。
最后,应该和其他的和战斗过程有关的插件是不兼容的。
梦石
0
星屑
497
在线时间
266 小时
注册时间
2015-12-8
回帖
729
发表于 2016-11-18 13:32:58 | 显示全部楼层
內建不就有一個額外行動階段了.......
回复

使用道具 举报

梦石
0
星屑
50
在线时间
74 小时
注册时间
2016-3-24
回帖
14
 楼主| 发表于 2016-11-18 13:35:57 | 显示全部楼层
小叮鈴 发表于 2016-11-18 13:32
內建不就有一個額外行動階段了.......

没有啊,哪有额外行动阶段

点评

有阿 能力那邊  发表于 2016-11-19 21:15
回复

使用道具 举报

梦石
0
星屑
5639
在线时间
1052 小时
注册时间
2008-6-9
回帖
494

开拓者

发表于 2016-11-18 18:07:56 | 显示全部楼层
可能是特性里面的额外动作?但是我一直不懂那个是怎么算的,有的时候是平A有的时候是防御
总是没耐心做一个游戏。。
回复

使用道具 举报

梦石
0
星屑
50
在线时间
74 小时
注册时间
2016-3-24
回帖
14
 楼主| 发表于 2016-11-21 12:57:51 | 显示全部楼层
小叮鈴 发表于 2016-11-18 13:32
內建不就有一個額外行動階段了.......

那个完全不符合要求啊……
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
172
在线时间
935 小时
注册时间
2010-11-13
回帖
897
发表于 2020-8-3 21:27:20 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部