dol吧 关注:181,199贴子:1,042,171

[白魔法进阶教程]奥术编译入门——阿卡夏文本篇

只看楼主收藏回复

个人最常用言灵魔法[[幕后煮屎|$passage][$fertiliser.current+=888]]镇楼。


IP属地:广东1楼2023-09-15 17:34回复
    正文开始前先感谢作者认真码代码保证了起码的可读性,不至于使人完全无法理解代码内容。
    这里本人演示过程中只用到了vscode软件的ctrl+F的查找功能,因此理论上来说你直接记事本打开源文件进行编辑也是完全可行的。
    本文中用到的存档解码网站是https://www.saveeditonline.com/


    IP属地:广东2楼2023-09-15 17:36
    收起回复
      2025-08-02 22:40:25
      广告
      不感兴趣
      开通SVIP免广告
      以我前几天琢磨出来的白魔法为例
      [[吃自助餐|$passage][$sexStats.anus.pregnancy.motherStatus = 2,$sexStats.anus.pregnancy.parasiteEvents = 2,$sexStats.anus.pregnancy.fetus[0].stats.gender = String.fromCharCode(72,101,114,109,97,112,104,114,111,100,105,116,101),$sexStats.anus.pregnancy.fetus[0].stats.growth = 7,$sexStats.anus.pregnancy.fetus[0].stats.speed = 54,$sexStats.anus.pregnancy.fetus[0].stats.lastEgg = 2, $sexStats.anus.pregnancy.fetus[0].creature = String.fromCharCode(80,97,108,101,32,84,101,110,116,97,99,108,101), $sexStats.anus.pregnancy.fetus[0].fertilised = true,$sexStats.anus.pregnancy.fetus[0].daysLeft = 12,$sexStats.anus.pregnancy.fetus[0].timeLeft = null]]
      其效果为在屎忽处生成一个双性苍白触手,但是它是怎么来的呢?
      首先看一份屎忽处寄生有双性蛇的存档截图

      这里是由作弊直接调出来的双性蛇寄生虫,作为对比看一下没有寄生过任何寄生虫的存档截图。

      两相对比马上就可以联想到,只要利用言灵修改这里涉及到的不同的变量不就可以直接生成想要的寄生虫了吗?
      于是马上就可以得到最上面提出的名为“吃自助餐”的言灵法术。


      IP属地:广东3楼2023-09-15 17:42
      回复
        修改变量有几个大原则,那就是由花括号{}包含的变量用 . 链接,而用方括号[]包含的变量用[i]表示,如上一楼的图所示,由于“pregnancy“被”anus“用花括号包含,因此写作anus.pregnancy,而”creature“由”fetus“先后用方括号和花括号包含,因此写作fetus[0].creature。
        那么下一个问题便是我怎么知道$号后面紧跟的第一个变量明呢?如图。

        存档开头有一个”variables“,由这个标签直接用花括号包含的便是变量,需要紧跟在$后。此网站贴心地将解码后的存档格式进行了调整,所以可以直接数空格数,”variables“前有9个空格,而”anus“起往上数第一个前面只有10个空格的变量名是”sexStats“,因此$后须紧跟sexStats,然后再依次往下数,直到最终的对象。


        IP属地:广东4楼2023-09-15 17:50
        回复
          注意到$sexStats.anus.pregnancy.fetus[0].stats.gender = String.fromCharCode(72,101,114,109,97,112,104,114,111,100,105,116,101)
          一句非常奇怪,这是因为言灵不能识别”“,必须以String.fromCharCode的形式表示string变量,而72,101,114,109,97,112,104,114,111,100,105,116,101实际上就是Hermaphrodite的十进制UTF-16码。
          同理,另一个白魔法中出现的String.fromCharCode(25805,20182,22920,30340,21482,20250,33384,35825,30340,30333,30196,33041,30251,23567,23114,23376)便是悉尼16字真言的十进制UTF-16码。


          IP属地:广东5楼2023-09-15 17:54
          回复
            我在吃自助餐魔法下有注释,出于不明原因,白魔法无法定义未声明数组,言下之意便是白魔法可以定义其它未声明变量。这点值得注意。


            IP属地:广东6楼2023-09-15 17:56
            回复
              和”吃自助餐“魔法一起,同时发布了”提前准备“魔法
              [[提前准备|$passage][$pregnancyStats.parasiteDoctorEvents = 2,$pregnancyStats.parasiteDoctorEvents = 2]]
              可以发现此魔法涉及到的变量和”吃自助餐“中的变量八杆子打不着,但是实际上这是必须的修改,而且可能还存在我没有发现的其它的必须的修改。那么我是怎么找到它的呢?


              IP属地:广东7楼2023-09-15 17:59
              回复
                膜一下大佬


                应用达人
                应用吧活动,去领取
                活动截止:2100-01-01
                去徽章馆》
                IP属地:山东8楼2023-09-15 18:03
                回复
                  2025-08-02 22:34:25
                  广告
                  不感兴趣
                  开通SVIP免广告
                  膜拜老师


                  IP属地:浙江来自Android客户端9楼2023-09-15 18:08
                  回复
                    打开源代码,搜索苍白史莱姆(pale slime)看到这段
                    这段很明显是在描述战斗过程,如果作者有认真码代码而不是一通瞎码的话,那么内设怀孕判定也在附近,『以此为起点』搜索(小穴)

                    这里出现了文本内设描述,因此在这一大段里面寻找『跳出去的函数』发现函数impregnateParasite与fertiliseParasites,这里我们要找的事『函数的定义』因此搜索(function impregnateParasite)与(function fertiliseParasites)


                    注意定义以function起始,以return结束。在函数中发现对于其它变量的更改,也要加入白魔法中,以尽可能避免可能出现的bug。


                    IP属地:广东10楼2023-09-15 18:36
                    回复
                      总结一下:由于游戏有导出/导入存档功能,因此可以认为所有信息都能在存档中找到,因此研发白魔法从存档入手是一个很直接而有效的思路。但是存档中仅列出了所有的变量,却没有给出变量之间的关系,为了避免可能存在的bug,需要回到源代码中,检索你要修改的内容涉及的事件,并从事件中挑选出所有引用的函数,并回到函数的定义,以白魔法模拟所有引用过得函数来模拟事件的进行,从而规避可能存在的bug。
                      所以我讲了这么半天其实是在描述一种如何尽可能拟真的思路?


                      IP属地:广东11楼2023-09-15 18:40
                      回复
                        好好好,顶顶


                        IP属地:黑龙江来自Android客户端12楼2023-09-16 19:17
                        回复
                          路过DD


                          IP属地:吉林13楼2023-09-16 19:22
                          回复
                            默默路过


                            IP属地:广东来自Android客户端14楼2023-09-16 19:46
                            回复
                              2025-08-02 22:28:25
                              广告
                              不感兴趣
                              开通SVIP免广告
                              求个一键润滑xx部位的言灵魔法……
                              我一直觉得在自己房间不能提前润滑,是一件很奇怪很出戏的事情……


                              IP属地:浙江来自Android客户端15楼2023-09-16 20:47
                              收起回复