Project1

标题: 战斗胜利结算自动或取消显示 [打印本页]

作者: 捕食者    时间: 2022-9-14 00:06
标题: 战斗胜利结算自动或取消显示
如题,如何战斗胜利结算窗口自动进行,或者不显示;现在是每个结算窗口都要手动点,有时候要点好几下,信息特别多;
目的是要做一个自动挂机刷道具的任务,谢谢
作者: apple5740    时间: 2022-9-14 14:26
你好,我这边查询到一个方法 是跟战斗胜利是有关系的。
在 rmmz_managers.js 中的 BattleManager.processVictory 。
可以看到这个方法中包含了
/* 处理胜利 */
BattleManager.processVictory = function() {
    $gameParty.removeBattleStates();
    $gameParty.performVictory();
    this.playVictoryMe();
    this.replayBgmAndBgs();
    this.makeRewards();
   //显示胜利信息
    this.displayVictoryMessage();
//显示奖励,包含经验值,金钱,掉落物
    this.displayRewards();
    this.gainRewards();
    this.endBattle(0);
};
可以按照你的需求,进行修改。
作者: 捕食者    时间: 2022-9-15 01:03
apple5740 发表于 2022-9-14 14:26
你好,我这边查询到一个方法 是跟战斗胜利是有关系的。
在 rmmz_managers.js 中的 BattleManager.processVic ...

非常感谢!
奖励和经验值这些问题解决了
主要是获取收益的这句 this.gainRewards();
这一句会获取经验后,角色升级那个窗口又出来了,又需要手动去点几下了
作者: 新耀012478    时间: 2022-9-15 03:08
捕食者 发表于 2022-9-15 01:03
非常感谢!
奖励和经验值这些问题解决了
主要是获取收益的这句 this.gainRewards();

rmmz_object.js
Game_Actor.prototype.changeExp = function(exp, show) {
    this._exp[this._classId] = Math.max(exp, 0);
    const lastLevel = this._level;
    const lastSkills = this.skills();
    while (!this.isMaxLevel() && this.currentExp() >= this.nextLevelExp()) {
        this.levelUp();
    }
    while (this.currentExp() < this.currentLevelExp()) {
        this.levelDown();
    }
    if (show && this._level > lastLevel) {
        this.displayLevelUp(this.findNewSkills(lastSkills));//显示升级信息
    }
    this.refresh();
};
作者: 捕食者    时间: 2022-9-15 20:48
新耀012478 发表于 2022-9-15 03:08
rmmz_object.js
Game_Actor.prototype.changeExp = function(exp, show) {
    this._exp[this._classId] ...

搞定了,非常感谢
作者: gs2616169    时间: 2023-3-28 17:31
学习了




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