Project1

标题: mv数据库中,敌人属性如何默认最小值为0? [打印本页]

作者: 重新起航    时间: 2023-6-8 16:19
标题: mv数据库中,敌人属性如何默认最小值为0?
RT,rmmv数据库中,敌人的属性最小值如防御、攻击、敏捷、幸运等默认为1,写成0会自动改成1,请问如何设置默认最小值为0?
rmmz的最小值就默认为0。

作者: 重新起航    时间: 2023-6-8 16:20
麻烦哪位大神帮忙告知一下,如何改核心文件,在objects.js里找了半天也不知道改哪里
作者: 小秋橙    时间: 2023-6-8 16:31
Game_BattlerBase.prototype.paramMin = function(paramId) {
    if (paramId === 1) {
        return 0;   // MMP
    } else {
        return 1;
    }
};

Game_BattlerBase.prototype.paramMax = function(paramId) {
    if (paramId === 0) {
        return 999999;  // MHP
    } else if (paramId === 1) {
        return 9999;    // MMP
    } else {
        return 999;
    }
};

我觉得这个是mv编辑器的bug,因为运行时默认是:
生命上限最低为1,其他最低为0;
生命上限最高为999999,魔力上限最高为9999,其他最高为999。
所以要么去data文件夹下面打开Enemies.json手动修改敌人的params数组,要么把params数组的内容写在右下角的备注里并自己写一个插件让它生效……
作者: 重新起航    时间: 2023-6-8 16:47
小秋橙 发表于 2023-6-8 16:31
Game_BattlerBase.prototype.paramMin = function(paramId) {
    if (paramId === 1) {
        return 0; ...

1、paramMax 和min这两个我改了 但是仍然不生效,使用0仍然会变成1;
2、去data文件夹下面打开Enemies.json手动修改敌人的params数组,除非不再修改数据库内容,不然一保存,又会还原成1
3、把params数组写成插件的形式,插件不会写,能帮忙吗
作者: xiamumomo    时间: 2023-6-8 20:03
重新起航 发表于 2023-6-8 16:47
1、paramMax 和min这两个我改了 但是仍然不生效,使用0仍然会变成1;
2、去data文件夹下面打开Enemies.js ...

Yep敌人基础参数  用自定义来弄
作者: RyanYe    时间: 2023-6-8 23:27
重新起航 发表于 2023-6-8 16:47
1、paramMax 和min这两个我改了 但是仍然不生效,使用0仍然会变成1;
2、去data文件夹下面打开Enemies.js ...

我的敌人数据(实际上是角色、装备、武器等所有数据)的json文件都是由excel自动生成出来的
我几乎从来不会去数据库对应的标签里修改这些内容的数据

另:编辑器的数据库,你不点对应的标签,去修改其他标签的内容(例如公共事件),那么敌人的数据是不会被强行修改为1的
作者: 小秋橙    时间: 2023-6-9 12:46
重新起航 发表于 2023-6-8 16:47
1、paramMax 和min这两个我改了 但是仍然不生效,使用0仍然会变成1;
2、去data文件夹下面打开Enemies.js ...

rpg_managers.js第155行左右:
DataManager.extractMetadata = function(data) {
    var re = /<([^<>:]+)(:?)([^>]*)>/g;
    data.meta = {};
    for (;;) {
        var match = re.exec(data.note);
        if (match) {
            if (match[2] === ':') {
                data.meta[match[1]] = match[3];
                // 新增内容开始
                if (Number.isFinite(+match[3]))
                    data[match[1]] = +match[3]; // 数字自动识别
                if (match[3].startsWith('[') && match[3].endsWith(']'))
                    data[match[1]] = JSON.parse(match[3]); // 数组自动识别
                // 新增内容结束
            } else {
                data.meta[match[1]] = true;
            }
        } else {
            break;
        }
    }
};
敌人数据库的备注里写<params:[999999,9999,0,0,0,0,0,0]>即可
作者: 重新起航    时间: 2023-6-9 16:19
小秋橙 发表于 2023-6-9 12:46
rpg_managers.js第155行左右:
DataManager.extractMetadata = function(data) {
    var re = /]*)>/g;

感谢回复 我试试




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