Project1

标题: 要怎么修改角色基础数值? [打印本页]

作者: 3000Roger    时间: 2024-4-14 14:31
标题: 要怎么修改角色基础数值?
RMMV内建角色1职业1等级1的数值是

攻击26
防御46
魔法攻击16
魔法防御16
敏捷32
运气32

要怎么直接修改数值? 我本来还以为这个功能应该大家都会需要,我居然找不到! ! ?

找到YEP_BaseParamControl.js但看说明都是修改"最大数值"而不是单纯修改单一角色的数值

想一个比较笨的方法就是脚本直接加加减减调成需要的数值...

找了很久,还是决定上来发问了....还是想知道有没有直接修改的方法
作者: 505681468    时间: 2024-4-14 15:48
应该是这里修改起始值




作者: 清澈淌漾    时间: 2024-4-14 15:49
Game_Actor.prototype.paramBase = function(paramId) {
    return this.currentClass().params[paramId][this._level];
};
什么职业 什么属性 等级
自己写判断
作者: 3000Roger    时间: 2024-4-14 15:56
505681468 发表于 2024-4-14 15:48
应该是这里修改起始值


太感谢你了! 原来就在这里而已
那再请教一下 命中 跟 回避 在哪里? ?
作者: 505681468    时间: 2024-4-14 16:08
本帖最后由 505681468 于 2024-4-14 16:09 编辑
3000Roger 发表于 2024-4-14 15:56
太感谢你了! 原来就在这里而已
那再请教一下 命中 跟 回避 在哪里? ? ...


猜测

命中和回避作为额外属性,在人物/装备特性(TRAIT)中被系统读取
所以一般会是固定值而不会成长

有代码
JAVASCRIPT 代码复制
  1. // 属性声明
  2. Object.defineProperties(Game_BattlerBase.prototype, {
  3.     // HIT rate
  4.     hit: { get: function() { return this.xparam(0); }, configurable: true },
  5.     // EVAsion rate
  6.     eva: { get: function() { return this.xparam(1); }, configurable: true }
  7. });
  8.  
  9. // 获取属性
  10. Game_BattlerBase.prototype.xparam = function(xparamId) {
  11.     return this.traitsSum(Game_BattlerBase.TRAIT_XPARAM, xparamId);
  12. };
  13.  
  14. // 判断 item/skill 是否命中
  15. Game_Action.prototype.itemHit = function(target) {
  16.     if (this.isPhysical()) {
  17.         // 技能命中率 * 角色命中
  18.         return this.item().successRate * 0.01 * this.subject().hit;
  19.     } else {
  20.         return this.item().successRate * 0.01;
  21.     }
  22. };



三种属性应该是对应了
Game_BattlerBase.param
Game_BattlerBase.xparam
Game_BattlerBase.sparam

作者: 3000Roger    时间: 2024-4-14 21:22
505681468 发表于 2024-4-14 16:08
猜测

命中和回避作为额外属性,在人物/装备特性(TRAIT)中被系统读取

感谢热心解释

我觉得我对RMMV的命中设定有点茫然

假设一个角色1等,没有特性,职业也没有特性,没有任何装备
这样命中是多少?

如果拿了一个+50%命中的武器
这样命中又是多少?

如果没有武器,使用一个攻击道具(成功60%),这样命中是多少?
作者: 505681468    时间: 2024-4-14 21:53
3000Roger 发表于 2024-4-14 21:22
感谢热心解释

我觉得我对RMMV的命中设定有点茫然



JAVASCRIPT 代码复制
  1. // 应用动作
  2. Game_Action.prototype.apply = function(target) {
  3.     result.missed = (result.used && Math.random() >= this.itemHit(target));
  4.     result.evaded = (!result.missed && Math.random() < this.itemEva(target));
  5. };
  6.  
  7. Game_Action.prototype.itemHit = function(target) {
  8.     if (this.isPhysical()) {
  9.         // 技能命中率 * 角色命中
  10.         return this.item().successRate * 0.01 * this.subject().hit;
  11.     } else {
  12.         return this.item().successRate * 0.01;
  13.     }
  14. };


目测是:
当攻击的命中类型是物理的时候 hitType == Game_Action.HITTYPE_PHYSICAL 的时候,
    命中率 = 技能/道具的配置成功率 * 特性所有的命中率加成
当攻击是物理之外的时候,魔法攻击/必定命中 的时候
    命中率 = 技能/道具的配置成功率


所以
如果拿了一个+50%命中的武器
按攻击情况,只会影响物理攻击

如果没有武器,使用一个攻击道具(成功60%)
也是按命中类型计算命中率



作者: 3000Roger    时间: 2024-4-14 23:24
505681468 发表于 2024-4-14 21:53
// 应用动作
Game_Action.prototype.apply = function(target) {
    result.missed = (result.used && ...

我好像比較了解了
非常感謝你的幫忙




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