设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 10140|回复: 5
打印 上一主题 下一主题

[有事请教] 关于时间制(等待)的速度换算以及浮动

[复制链接]

Lv2.观梦者

梦石
0
星屑
690
在线时间
129 小时
注册时间
2020-7-18
帖子
75
跳转到指定楼层
1
发表于 2021-3-17 10:58:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
100星屑
最近在尝试着做时间制的战斗,但是被敏捷值折磨的一愣一愣的,测试了两天还是完全把握不好行动速度,不知有没有大佬知道敏捷值是怎么换算成速度的?
还有,我发现行动速度会有挺严重的浮动,很影响行动速度的设计,想请教一下如何取消速度浮动(最好可以直接改源码

最佳答案

查看完整内容

rpg_objects.js Game_Battler.prototype.tpbAcceleration = function() { const speed = this.tpbRelativeSpeed(); const referenceTime = $gameParty.tpbReferenceTime(); return speed / referenceTime; }; Game_Battler.prototype.tpbRelativeSpeed = function() { return this.tpbSpeed() / $gameParty.tpbBaseSpeed(); }; Game_Battler.prototype.tpbSpeed = function() { return Math.sqrt(this.agi) ...

Lv1.梦旅人

梦石
0
星屑
112
在线时间
1 小时
注册时间
2021-6-23
帖子
1
2
发表于 2021-3-17 10:58:15 | 只看该作者
rpg_objects.js

Game_Battler.prototype.tpbAcceleration = function() {
    const speed = this.tpbRelativeSpeed();
    const referenceTime = $gameParty.tpbReferenceTime();
    return speed / referenceTime;
};

Game_Battler.prototype.tpbRelativeSpeed = function() {
    return this.tpbSpeed() / $gameParty.tpbBaseSpeed();
};

Game_Battler.prototype.tpbSpeed = function() {
    return Math.sqrt(this.agi) + 1;
};

Game_Battler.prototype.tpbBaseSpeed = function() {
    const baseAgility = this.paramBasePlus(6);
    return Math.sqrt(baseAgility) + 1;
};

Game_Battler.prototype.tpbRequiredCastTime = function() {
    const actions = this._actions.filter(action => action.isValid());
    const items = actions.map(action => action.item());
    const delay = items.reduce((r, item) => r + Math.max(0, -item.speed), 0);
    return Math.sqrt(delay) / this.tpbSpeed();
};

敏捷换算行动速度是这个,举个例子,敏捷16的是敏捷1的2.5倍速((4+1)/(1+1)= 2.5)
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
26313
在线时间
5361 小时
注册时间
2016-3-8
帖子
1656
3
发表于 2021-3-17 11:12:07 | 只看该作者
敏捷值是怎么换算成速度的?

rpg_objects.js

Game_Action.prototype.speed = function() {
    var agi = this.subject().agi;
    var speed = agi + Math.randomInt(Math.floor(5 + agi / 4));
    if (this.item()) {
        speed += this.item().speed;
    }
    if (this.isAttack()) {
        speed += this.subject().attackSpeed();
    }
    return speed;
};

红字应该就是速度浮动的原因?
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
690
在线时间
129 小时
注册时间
2020-7-18
帖子
75
4
 楼主| 发表于 2021-3-17 14:05:12 | 只看该作者
alexncf125 发表于 2021-3-17 11:12
rpg_objects.js

Game_Action.prototype.speed = function() {

那大佬知道敏捷是如何换算成行动速度的么23333
我完全搞不懂,硬试了很多次了都没试出啥来
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
690
在线时间
129 小时
注册时间
2020-7-18
帖子
75
5
 楼主| 发表于 2021-3-19 02:51:36 | 只看该作者
alexncf125 发表于 2021-3-17 11:12
rpg_objects.js

Game_Action.prototype.speed = function() {

经过多次试验,时间制的行动速度浮动并不是这个源码的原因
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
26313
在线时间
5361 小时
注册时间
2016-3-8
帖子
1656
6
发表于 2021-3-19 08:43:18 | 只看该作者
UTO 发表于 2021-3-19 02:51
经过多次试验,时间制的行动速度浮动并不是这个源码的原因

喔...原来不是啊...抱歉啦...
不过为什么得经过多次试验??

去掉Math.randomInt及其后 和 去掉下面两句+=
测一次就行了吧...有需要多次试验么
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-23 21:39

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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