Project1

标题: 动作序列状态概率 [打印本页]

作者: 清明上河図    时间: 2020-3-13 18:35
标题: 动作序列状态概率

有没有大佬知道怎么在动作序列里面写

状态成功概率,还有计算敌人的状态抵抗率。

就是和效果栏直接添加状态xx%一样的效果。


<setup action>
display action
immortal: targets, true
</setup action>
<target action>
animation 20: target
wait for animation
If target.isStateAffected(500)
else
If target.isStateAffected(499)
Remove State 499: target
Add State 500: target
else
Add State 499: target
</target action>
作者: 秦永亨    时间: 2020-3-16 14:39
提示: 作者被禁止或删除 内容自动屏蔽
作者: 擦不完的水    时间: 2020-3-23 18:22
估计你要的东东跟下面的源程序有关
Game_Action.prototype.itemEffectAddState = function(target, effect) {
    if (effect.dataId === 0) {
        this.itemEffectAddAttackState(target, effect);
    } else {
        this.itemEffectAddNormalState(target, effect);
    }
};

Game_Action.prototype.itemEffectAddAttackState = function(target, effect) {
    this.subject().attackStates().forEach(function(stateId) {
        var chance = effect.value1;
        chance *= target.stateRate(stateId);
        chance *= this.subject().attackStatesRate(stateId);
        chance *= this.lukEffectRate(target);
        if (Math.random() < chance) {
            target.addState(stateId);
            this.makeSuccess(target);
        }
    }.bind(this), target);
};

Game_Action.prototype.itemEffectAddNormalState = function(target, effect) {
    var chance = effect.value1;
    if (!this.isCertainHit()) {
        chance *= target.stateRate(effect.dataId);
        chance *= this.lukEffectRate(target);
    }
    if (Math.random() < chance) {
        target.addState(effect.dataId);
        this.makeSuccess(target);
    }
};
stateRate(stateId)估计就是状态有效度吧,这里面还有幸运值修正




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