大千世界吧 关注:18,464贴子:46,758
  • 11回复贴,共1

大千世界steam版修改教程(一):开关的修改(自主选择遇怪)

取消只看楼主收藏回复

这游戏玩的时候就感觉这个遇怪率是真的头痛,就想着搞一个可以自主选择遇见什么怪物的开关。按照原版自带bgm音量写了一个。与大家一起分享,也防止退坑后很久回坑然后忘记怎么设置这种开关,于是有了这个帖子。
以上为本人的呓语,可以无视。
教程开始前,请确认游戏平台为pc Steam版(按照道理来说手机和其他什么mod版也是可以但是保险起见还是针对特定版本吧),游戏已解包(解包工具和教程一大堆,本吧随便搜一下就有)。
先这样吧,2楼开始正式教程。


IP属地:浙江1楼2022-04-11 09:17回复
    1.打开www文件夹,再打开js文件夹,在此目录下rpg_managers.js文件中,搜索 Object.defineProperty(ConfigManager, 'bgmVolume', 确认上方有 function ConfigManager()
    2.在↑位置(Object.defxxxx)前面,把整个defineProperty复制一遍。从Object.def...一直到configurable: true}); (最后的符号‘};’也是要的),并更改为如下内容:
    Object.defineProperty(ConfigManager, 'troopidNum', {
    get: function() {
    return AudioManager._troopidNum;//别问我为什么这里是这么写的,我不知道
    },
    set: function(value) {
    AudioManager._troopidNum = value;
    },
    configurable: true
    });
    其中,troopidNum 可以更换为其他名字,英文即可。其他的不要动。(提示:可以用ctrl+h进行替换)
    3.在rpg_managers.js文件中,搜索 ConfigManager.makeData = function(),在 config.commandRemember = this.commandRemember; 下一行添加如下内容:
    config.troopidNum = this.troopidNum; //提示,名字可更换,具体参照2
    4.在↑的下方(大概10行内)找到applyData,参照3内位置添加:
    this.troopidNum = this.readNum(config, 'troopidNum');
    5.在 applydata 后面,添加如下内容:
    ConfigManager.readNum = function(config, name) {
    var value = config[name];
    if (value !== undefined) {
    return Number(value).clamp(0, 9);
    } else {
    return 0;
    }
    6.在rpg_managers.js文件中,搜索AudioManager._bgmVolume,在 AudioManager._bgmVolume = 100; 上一行添加如下内容:
    AudioManager._troopidNum = 0;
    rpg_managers.js文件修改完毕,第一部分结束。


    IP属地:浙江2楼2022-04-11 09:20
    回复
      粘贴一下楼上步骤的图片版(百度这**的排版)


      IP属地:浙江3楼2022-04-11 09:23
      回复
        7. 在rpg_windows.js文件中,搜索pe.addVolumeOptions ,在 this.addCommand(TextManager.bgmVolume, 'bgmVolume'); 上一行添加如下内容:
        this.addCommand('敌群变化', 'troopidNum');
        8. 在rpg_windows.js文件中,搜索pe.statusText ,把整个函数替换为如下内容:(从Window_Options.到下面的第一个‘ }; ’)
        Window_Options.prototype.statusText = function(index) {
        var symbol = this.commandSymbol(index);
        var value = this.getConfigValue(symbol);
        if (this.isVolumeSymbol(symbol)) {
        return this.volumeStatusText(value);
        }
        else if (this.isTroopidNumSymbol(symbol)) {
        return this.troopidNumStatusText(value);
        } else {
        return this.booleanStatusText(value);
        }
        };
        9. 在8的末尾(‘ }; ’的后面)粘贴如下内容:
        Window_Options.prototype.isTroopidNumSymbol = function(symbol) {
        return symbol.contains('troop');
        };
        Window_Options.prototype.troopidNumStatusText = function(value) {
        return '第' + value + '组';
        };


        IP属地:浙江4楼2022-04-11 09:29
        回复
          楼上图片


          IP属地:浙江5楼2022-04-11 09:32
          回复
            10.在9的末尾(‘ }; ’的后面)找到Window_Options.prototype.processOk = function() { ,把整个函数替换为如下内容:(从Window_Options.到下面的第一个‘ }; ’)
            Window_Options.prototype.processOk = function() {
            var index = this.index();
            var symbol = this.commandSymbol(index);
            var value = this.getConfigValue(symbol);
            if (this.isVolumeSymbol(symbol)) {
            value += this.volumeOffset();
            value = (value>100 ? 0 : value<0 ? 100 : value).clamp(0, 100);
            this.changeValue(symbol, value);
            }
            else if (this.isTroopidNumSymbol(symbol)) {
            value += 1;
            value = (value>9 ? 0 : value<0 ? 9 : value).clamp(0, 9);
            this.changeValue(symbol, value);
            }
            else {
            this.changeValue(symbol, !value);
            }
            };
            11.在10的末尾(‘ }; ’的后面)找到Window_Options.prototype.cursorRight = function(wrap) { ,把整个函数替换为如下内容:(从Window_Options.到下面的第一个‘ }; ’)
            Window_Options.prototype.cursorRight = function(wrap) {
            var index = this.index();
            var symbol = this.commandSymbol(index);
            var value = this.getConfigValue(symbol);
            if (this.isVolumeSymbol(symbol)) {
            value += this.volumeOffset();
            value = (value>100 ? 0 : value<0 ? 100 : value).clamp(0, 100);
            this.changeValue(symbol, value);
            }
            else if (this.isTroopidNumSymbol(symbol)) {
            value += 1;
            value = (value>9 ? 0 : value<0 ? 9 : value).clamp(0, 9);
            this.changeValue(symbol, value);
            }
            else {
            this.changeValue(symbol, true);
            }
            };
            12.在11的末尾(‘ }; ’的后面)找到Window_Options.prototype.cursorLeft = function(wrap) { ,把整个函数替换为如下内容:(从Window_Options.到下面的第一个‘ }; ’)
            Window_Options.prototype.cursorLeft = function(wrap) {
            var index = this.index();
            var symbol = this.commandSymbol(index);
            var value = this.getConfigValue(symbol);
            if (this.isVolumeSymbol(symbol)) {
            value -= this.volumeOffset();
            value = (value>100 ? 0 : value<0 ? 100 : value).clamp(0, 100);
            this.changeValue(symbol, value);
            }
            else if (this.isTroopidNumSymbol(symbol)) {
            value -= 1;
            value = (value>9 ? 0 : value<0 ? 9 : value).clamp(0, 9);
            this.changeValue(symbol, value);
            }
            else {
            this.changeValue(symbol, false);
            }
            };
            rpg_windows.js文件修改完毕,第二部分结束。


            IP属地:浙江6楼2022-04-11 09:34
            回复
              楼上文字图片版


              IP属地:浙江7楼2022-04-11 09:39
              回复

                13.在rpg_objects.js文件中,搜索if (weightSum > 0) { ,把这一行开始到函数结束替换为如下内容:(从‘if (weightSum > 0) {’ 到下面的第一个‘ }; ’)
                if (weightSum > 0) {
                var value = Math.randomInt(weightSum);
                for (var i = 0; i < encounterList.length; i++) {
                var id = Math.min(ConfigManager.troopidNum, encounterList.length-1);//检查传入的数据是否在length内
                return encounterList[id].troopId;
                }
                }
                return 0;
                };
                rpg_objects.js文件修改完毕,所有需要修改的地方修改完毕。
                效果:在设置菜单中会出现一个新的开关,可以调整它来自行选择随机遇怪。(小声bb:本吧内其他【所有】只遇稀有、只遇罕见等此类修改【均】存在一定问题,例如某些地图只能遇见红包怪,我的修改【不存在】这个问题)


                IP属地:浙江8楼2022-04-11 09:45
                回复
                  楼上文字图片版


                  IP属地:浙江9楼2022-04-11 09:50
                  回复
                    至此,【自主选择遇怪】开关修改完毕。如觉得我哪里没有讲清楚,请提问并带上引用,我看见了会回复的。
                    【最好】以如下格式提问:
                    针对之前所说的“本帖内不清楚的文字(请务必直接CTRL+C+V)”,我有X个问题:
                    1.
                    2.
                    3.
                    这样也方便所有人的阅读和理解,谢谢合作。
                    另,我会在中午时候发一个效果视频(假设我搞清楚了怎么在贴吧发视频的话


                    IP属地:浙江10楼2022-04-11 09:55
                    回复
                      对了,这个修改是在群内某位大佬的指点下完成的,后面发现是阻击大佬本人。特此感谢大佬的耐心指点。


                      IP属地:浙江11楼2022-04-11 10:17
                      回复
                        链接:https://pan.baidu.com/s/1VvANVVHzaCkgidz1B7O1-A
                        提取码:dqsj
                        --来自百度网盘超级会员V4的分享
                        真是失望,以后也不会再发教程了。
                        此贴终结。


                        IP属地:浙江19楼2022-05-07 16:41
                        收起回复