赞 | 160 |
VIP | 0 |
好人卡 | 0 |
积分 | 266 |
经验 | 0 |
最后登录 | 2025-1-13 |
在线时间 | 5404 小时 |
Lv5.捕梦者
- 梦石
- 0
- 星屑
- 26643
- 在线时间
- 5404 小时
- 注册时间
- 2016-3-8
- 帖子
- 1660
|
本帖最后由 alexncf125 于 2021-4-30 14:20 编辑
50星屑有点少
暴击率与暴击闪避的判定公式
Game_Action.prototype.itemCri = function(target) {
//允许暴击时, itemCri 返回 使用者的暴击率*(1-目标的暴击闪避)
//没允许暴击时, itemCri 返回 0
return this.item().damage.critical ? this.subject().cri * (1 - target.cev) : 0;
};
//随机数小于 itemCri 时, 发生暴击
result.critical = (Math.random() < this.itemCri(target));
暴击率的伤害公式
Game_Action.prototype.applyCritical = function(damage) {
//发生暴击时, 伤害*3
return damage * 3;
};
命中率与物理闪避与魔法闪避的判定公式
Game_Action.prototype.itemHit = function(target) {
//当技能的命中类型为物理攻击, 则 itemHit 返回 技能的成功率*0.01*使用者的命中率
if (this.isPhysical()) {
return this.item().successRate * 0.01 * this.subject().hit;
//当技能的命中类型为必中/魔法攻击, 则 itemHit 返回 技能的成功率*0.01
} else {
return this.item().successRate * 0.01;
}
};
Game_Action.prototype.itemEva = function(target) {
//当技能的命中类型为物理攻击, 则 itemEva 返回 目标的闪避
if (this.isPhysical()) {
return target.eva;
//当技能的命中类型为魔法攻击, 则 itemEva 返回 目标的魔法闪避
} else if (this.isMagical()) {
return target.mev;
//当技能的命中类型为必中, 则 itemEva 返回 0
} else {
return 0;
}
};
result.used = this.testApply(target);
//随机数大于等于 itemHit 时, 使用者没命中
result.missed = (result.used && Math.random() >= this.itemHit(target));
//随机数小于 itemEva 时, 目标有闪避
result.evaded = (!result.missed && Math.random() < this.itemEva(target));
使用者有命中+目标没闪避 时, 即表示命中了
Game_ActionResult.prototype.isHit = function() {
return this.used && !this.missed && !this.evaded;
};
反击(率)和(魔法)反射率
Game_Action.prototype.itemCnt = function(target) {
//当技能的命中类型为物理攻击 且 目标可以行动, 则 itemCnt 返回 目标的反击率, 否则返回 0
if (this.isPhysical() && target.canMove()) {
return target.cnt;
} else {
return 0;
}
};
Game_Action.prototype.itemMrf = function(target) {
//当技能的命中类型为魔法攻击, 则 itemMrf 返回 目标的魔法反射率, 否则返回 0
if (this.isMagical()) {
return target.mrf;
} else {
return 0;
}
};
BattleManager.invokeAction = function(subject, target) {
this._logWindow.push('pushBaseLine');
//随机数小于 itemCnt 时, 发生反击
if (Math.random() < this._action.itemCnt(target)) {
this.invokeCounterAttack(subject, target);
//随机数小于 itemMrf 时, 发生魔法反射
} else if (Math.random() < this._action.itemMrf(target)) {
this.invokeMagicReflection(subject, target); |
|