这个挺简单的,一看就会。
打开managers.js这个文件,搜索下面这个:
[JavaScript] 纯文本查看 复制代码 BattleManager.makeEscapeRatio = function()
这个函数定义了一个计算公式,得到一个数值。然后脚本中的其他地方来引用这个函数,从而完成其他操作。
这个公式的默认计算是这样的:
[JavaScript] 纯文本查看 复制代码 BattleManager.makeEscapeRatio = function() {
this._escapeRatio = (0.5 * $gameParty.agility()) / $gameTroop.agility();
};
即成功率=0.5×全体队员的敏捷平均值÷全体敌人的敏捷成功率。
于是就可以自由发挥了。
比如:this._escapeRatio = 1,就是永远逃跑成功,this._escapeRatio = 0.5,就是永远50%,this._escapeRatio = $gameVariables.value(n) /100 ,就算用n号变量来控制。注意this._escapeRatio 的计算结果是0-1浮点数,而不是0-100的整数。
另外要注意,$gameParty.agility()和$gameTroop.agility()中的agility()部分是默认脚本已经定义过了,可以直接调用。如果改成lucky()、attack()等,是无效的。这个需要自己来定义。
同理我们可以触类旁通。这两段代码是计算先敌和偷袭 引用算法,用搜索功能可以找到详细的计算方式。
[C++] 纯文本查看 复制代码 BattleManager.ratePreemptive = function() {
return $gameParty.ratePreemptive($gameTroop.agility());
};
BattleManager.rateSurprise = function() {
return $gameParty.rateSurprise($gameTroop.agility());
};
|