Project1

标题: MV战斗时的逃跑几率是以什么属性来判定的? [打印本页]

作者: nhycs01    时间: 2023-2-24 08:59
标题: MV战斗时的逃跑几率是以什么属性来判定的?
是以队伍与敌人的速度平均值来判定吗?还是其他什么属性呢?
如果要修改为固定的逃跑几率,比如1/4失败,3/4成功,该如何操作呢?
作者: xiamumomo    时间: 2023-2-24 10:49
rpg_managers  
  1. BattleManager.makeEscapeRatio = function() {
  2.     this._escapeRatio = 0.5 * $gameParty.agility() / $gameTroop.agility();
  3. };
复制代码

作者: nhycs01    时间: 2023-2-24 11:41
xiamumomo 发表于 2023-2-24 10:49
rpg_managers

大佬,我找到这里了,但是怎么改?
0.5的意思是一半几率逃跑吗?
那如果我想改成1/4失败,3/4成功,数值怎么写?
是0.3还是0.7?
作者: xiamumomo    时间: 2023-2-24 12:06
nhycs01 发表于 2023-2-24 11:41
大佬,我找到这里了,但是怎么改?
0.5的意思是一半几率逃跑吗?
那如果我想改成1/4失败,3/4成功,数值 ...

不知道  应该是队伍敏捷的总和*0.5  /敌人敏捷总和
作者: 小秋橙    时间: 2023-2-24 15:37
xiamumomo 发表于 2023-2-24 10:49
rpg_managers

Game_Unit.prototype.agility = function() {
    var members = this.members();
    if (members.length === 0) {
        return 1;
    }
    var sum = members.reduce(function(r, member) {
        return r + member.agi;
    }, 0);
    return sum / members.length;
};
从上面这段代码来看,两个agility确实是全队取平均值(感觉不太合理,我方取平均值能理解,但敌方我觉得应该取最高值),然后我方逃跑成功率等于0.5乘以两个agility的比值。
举例来说就是双方agility相等时我方逃跑成功率为0.5,我方agility为敌方一半时逃跑成功率为0.25,我方agility为对方两倍以上时逃跑必定成功。
所以如果想改成固定成功率n%的话,就直接写:
BattleManager.makeEscapeRatio = function() {
    this._escapeRatio = n / 100; // 比如0.25、0.75都可以
};
作者: xiamumomo    时间: 2023-2-24 16:34
小秋橙 发表于 2023-2-24 15:37
Game_Unit.prototype.agility = function() {
    var members = this.members();
    if (members.lengt ...

我想的是  (我方最高和最低相加/2)/敌方最高移速      再或者就是  逃跑成功不是逃跑所有人一起跑  谁逃跑就是谁先离开战斗没逃跑的继续战斗  这个有趣  这样即使战斗失败有逃跑出去的队友也不算游戏结束emmm
作者: nhycs01    时间: 2023-2-24 21:51
小秋橙 发表于 2023-2-24 15:37
Game_Unit.prototype.agility = function() {
    var members = this.members();
    if (members.lengt ...

感谢大佬解释。




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