卡琳典狱长吧 关注:68,915贴子:273,807

开坑,没有任何干货的js修改教学贴

只看楼主收藏回复

上周提出要不要开这么个教学贴,实际根本没什么人响应回贴人数甚至没有讨论其他游戏或者卖资源贴子多。至于为什么还开这个贴,只是不想辜负那么几个人的留言,顺便交流一下说不定钓出来大佬教我做mod(才不是,我才懒得学,不开这贴我不是白整理了)反正没什么人看,随便做做得了
当然有些话还是要再说一遍叠个盾,虽然我之前也在吧里教了不少人怎么怎么改,但实际上毫无技巧全凭搜索,这个贴里仅分享一部分我进行修改的过程,希望能够启发各位在想实现某些效果的时候有自己解决的能力。我个人没有rpgmk开发的经验,平时也是用C++的并不会js代码,只能做到看懂大部分代码逻辑,希望有大佬能看到的话多多包容并纠错
后期如果人多了,可能会设置一层楼收集修改的问题并抽取其中几个作为案例继续讲解,所以希望各位不要在中间层中询问xxx怎么改,我看到了也不会答的(大概),前面也说了我并不会js,所以也不是所有问题都会解决,也做不到无中生有制作mod,如果我没有回复的话就当我不会吧


IP属地:江苏1楼2023-03-14 14:34回复
    前置需求
    在修改文件前,你需要准备什么
    1. 基础英语阅读能力
    2. 文本编辑器,系统自带的记事本在编辑大量和带格式文本不方便,推荐用notepad、sublime之类的。
    3. 基本代码语句知识:
    看懂的要求其实很低,因为他的js插件内容确实没什么语法,就是大量的变量和条件判断非常眼花缭乱,基本就如下
    注释: //表示这一行从这开始被注释 被注释的代码不会被执行,用于提示作者
    /* 表示这中间的内容被注释*/
    分支:If(条件1)
    { //当符合条件1时执行此大括号内容
    }
    else if(条件2)
    {//当不符合条件1但符合条件2时执行此大括号内容
    }
    else
    {//当条件1与2均不符合,执行此括号内容
    }
    switch(变量)
    {
    case 条件1:
    //当变量符合条件1时,执行此部分内容
    break ;
    case 条件2:
    break ;
    }
    条件判断: 与 && 或 || 非! 相等==
    赋值: let variable= value; // 创建(let)一个变量,值为等号右边内容;
    A+= b; //等同于A = A + b;
    声明函数:xxxx = function (){
    return x; //x为函数返回值,可不返回
    }
    调用函数:AAA.xxxx();//调用名为xxxx的函数
    Var = AAA.xxxx();//将xxxx的返回值赋给Var
    4. Rpgmaker(可有可无)以前我就在各种交流js修改的时候不止一次提过配合使用这东西(我会用吗?我也不会),虽然大部分功能确实修改js就可以完成,但是rpgmv里的内容用来做参照真的很好用。而且制作mod设计素材之类的,避免不了这个吧


    IP属地:江苏2楼2023-03-14 14:41
    回复
      2026-03-03 02:40:54
      广告
      不感兴趣
      开通SVIP免广告
      一. 案例1,囚犯模式逃跑
      第一个案例就用做这个贴的起因,那个老哥问我的囚犯模式逃跑开始吧。这一类的思路比较直接,因为目标功能清晰简单,所以我选择直接搜索逃跑的英文。
      这里全局搜索escape


      IP属地:江苏3楼2023-03-14 14:48
      回复
        Emmmmm有点多,但是乍一看大部分都是escapecharacter什么的,一看就知道不是。注意到第一个有个canEscape变量能否逃跑;第四个有个commandEscape函数,先记下一会儿再进去看,再稍微翻一下。

        看到注释//Can Escape , 这就是作者用来提醒自己的,一般这里就是在描述下面一块代码的功能,这时候已经离目标不远了,再看一眼js文件名,battleManager,战斗相关的那更像了,大概率就是这块所以直接进去看。

        嗯,看了个寂寞,但是有个_canExcape变量和函数,那再看看另一个RemtairyCombat.js

        诶这不就有了嘛,还hardMode,一眼顶真。这部分代码意思就是如果是困难模式返回否,正常返回值为在战斗姿态且不想zw且不可逃跑标志为否且疲劳阶段小于等于3. 我们目标是困难模式下可逃跑那就吧那行删掉或者注掉就行,一般选择注释,一来提醒自己,二来尽量不影响行数,这样在交流修改的时候位置不会差太多。保存,打开游戏,可以逃跑,完成。


        IP属地:江苏4楼2023-03-14 14:49
        收起回复
          延申:这里看看之前记下的其他东西,记得一开始看到的canEscape变量和函数嘛,一般函数可以当作某功能,所以我搜索 .canEscape 调用这个函数的地方,或者 canescape = function() 声明这个函数的地方,同样能找到这些内容。
          Prison.hardMode,这次知道了表示囚犯模式,以后如果有这个难度下的功能或者数值和其他模式不同想改的可以先尝试搜这个。下面两个功能turnOnCantEscapeFlag, 有点感兴趣,什么时候会禁止逃跑,查一下哪里调用了

          哦,是各种特殊战斗的时候禁止逃跑。那个getFatigueLevel疲劳阶段没见过,这是什么,搜一下
          嗯,只是根据疲劳值分划不同阶段而已,但是我在搜索栏看到了RemtairyVoices.js里看到了调用,声音啊,突然兴奋

          Oyasumi 日语晚安,就这啊,告辞


          IP属地:江苏5楼2023-03-14 14:51
          回复
            案例二 战斗模式zw及快速退出
            这个已经过去很久了,以前帮别人改了战斗模式可以直接进入zw阶段但是没改快速退出,挖了个坑,结果最近自己又开始玩的时候觉得好麻烦每次都要选结束zw,还排在最后一个,于是顺手改了。这里从头开始讲。


            IP属地:江苏6楼2023-03-14 14:55
            回复
              首先是战斗zw,诶呀战斗阶段太复杂了不想看,直接搜battle肯定一团乱麻,得想办法先缩小范围。js文件有个RemtairyKarrynOnani.js,这个是zw相关的,先进去看看。全局搜battle太多,这一个文件里搜battle总该少了。

              欸,关键字这不就来了,MASTURBATE_INBATTLE_SKILL_START,setup_masturbationBattle,
              // In BattleOnani,_onaniWantsToInBattle,这些一看基本就确定了,稍微找一下调用位置确认。一开始的时候,this.setWantsTOOnaniInBattle(false);把false改成true,结果试了一下,发现它在结束zw以后又判断想zw了开始死循环。功能是对的,但是用的地方差错,所以寻找调用这个的地方,找到了checkOnaniInBattleDesire 检查战斗zw欲望,看名字应该是哪里判断是否符合条件然后进入阶段,寻找调用,在retairywillpower.js找到了,结合上下文,意志阶段结束,嗯和实际流程一样,打开游戏一看效果实现,完成。但是这时候因为欲望要求没有达到,所以没有技能可以使用,技能相关的我在后面讲。


              IP属地:江苏7楼2023-03-14 14:57
              回复
                接下来是快速退出,这个一开始是完全没有头绪,虽然知道精神阶段可以快速退出但是不知道怎么设置。然后突然想到,菜单栏啊

                直接对 “跳过战斗中的心智阶段”进行一个搜的索

                这个文件对应的是简繁中的翻译,继续往上寻找

                这里意思大概就是显示对应语言的文字,继续直到这里

                这不就是了嘛,函数名,像是返回快捷键绑定一个功能,所以只要在这里加上结束zw状态就可以了。问题来了,我不知道怎么结束啊。先搜一搜enterActionPhase看定义附近有没有zw阶段,并没有。只好回到RemtairyKarrynOnani.js // In Battle Onani部分看看,看到了showEval_mbDontMasturbate这四个,好像是,但是不知道怎么用,仔细看看大意是不在zw状态中显示不zw技能,选择不zw技能后增加欲望,zw状态中显示停止zw技能,选择停止后执行什么。
                到此为止已经完全明白了,在刚刚的位置调用一下试试看:并没有卵用
                于是返回查看进入zw阶段代码,发现其实根本没有这个阶段,这是行动阶段的一部分,于是直接像进入一样设置退出就完事了,试试。

                嗯?我zw阶段呢?仔细想一下,这里顺序执行,按了返回以后,先进入了行动阶段,然后判断进入zw,紧接着又离开了,我是猪比。调换一下顺序,成功。
                延申:我可以仿照精神阶段那样在菜单栏添加设置选项,按照上面寻找过程相反的顺序:定义执行的功能函数->菜单栏添加项目->绑定功能函数->设置菜单项目显示文字。
                在看菜单的时候,发现已经有毛发选项了,虽然没法设置,dlc还没出,但是看到了判断dlc有无的代码。一个猜想,steam大部分游戏在安装本体的时候就会安装dlc,而这里判断有无dlc条件可以修改。但是话说回来,我记得很久以前刚接触这个游戏的时候,就可以改毛色,不知道是别人做的还是作者废案现在拿来卖。


                IP属地:江苏8楼2023-03-14 15:01
                收起回复
                  2026-03-03 02:34:54
                  广告
                  不感兴趣
                  开通SVIP免广告
                  反正没人看,歇了歇了,明天有人了再说,没人直接进行一个删除


                  IP属地:江苏9楼2023-03-14 15:03
                  收起回复
                    有啊,别删


                    IP属地:广东来自Android客户端10楼2023-03-14 15:23
                    回复
                      别删别删


                      IP属地:河北来自Android客户端11楼2023-03-14 15:46
                      回复
                        大哥,别删啊


                        IP属地:海南来自Android客户端12楼2023-03-14 15:48
                        回复
                          这样的大佬不顶不行!!!!666666


                          IP属地:广东15楼2023-03-14 16:22
                          回复
                            大哥666


                            IP属地:江苏来自iPhone客户端16楼2023-03-14 16:43
                            回复
                              2026-03-03 02:28:54
                              广告
                              不感兴趣
                              开通SVIP免广告
                              大佬 求教一下修改战败人数


                              来自Android客户端17楼2023-03-14 17:17
                              回复