快捷导航
查看: 294|回复: 1

[技巧] 【js在MV/MZ中的华丽操作】修改逃跑成功率等

[复制链接]
会员等级

积分信息
金币:733
金钱:0
元宝:20
活跃:187
发电:0

荣誉勋章
热心会员优秀版主首批会员最佳新人

TA的角色
UID: 6 发表于 2022-12-20 07:54:32 | 显示全部楼层 |阅读模式
这个挺简单的,一看就会。

打开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());
};

最近访客

回复 论坛版权

使用道具 举报

会员等级

积分信息
金币:263
金钱:0
元宝:5
活跃:107
发电:0

荣誉勋章
首批会员最佳新人

TA的角色
UID: 4 发表于 2022-12-20 09:04:30 | 显示全部楼层
666666666好主意
回复

使用道具 举报

文明发言,和谐互动
文明发言,和谐互动
您需要登录后才可以回帖 登录 | 加入民族

本版积分规则

论坛用工具

蓝凑云 hello图床 聚合图床 TinyPNG remove 代码测试 颜色代码 颜色代码2

Powered by Discuz!

© 2001-2013 Comsenz Inc.

实用工具

AI人工智能图片放大 图片无损放大 Deepl翻译器 百宝箱 孟坤工具箱 在线压缩图片 图片切圆角

您一共访问了本站 加载中...

Archiver|小黑屋|RPG民族

GMT+8, 2024-11-21 21:19 , Processed in 0.210000 second(s), 46 queries .

快速回复 返回顶部 返回列表