三国群英传7吧 关注:144,005贴子:1,014,602

【修改教程】Script.so修改方法整合

只看楼主收藏回复

开个坑,缓慢更新,好吧我知道其实没多少人会看
关键词:
三国群英传七
修改教程
script.so


IP属地:海南1楼2015-01-04 16:19回复
    首先script.so文件在script文件夹中,修改需要使用Ultra Edit


    IP属地:海南2楼2015-01-04 16:21
    回复(12)
      例2:士兵特殊攻击,召唤物特殊攻击,必杀效果交换



      替换方法同上,先将Soldierstart002随便修改个不重复编号如902,然后搜索花影乱击代码SuperStart317,从首字母开始用SoldierStart002.覆盖,则002重步兵特攻变为必杀 – 花影乱击


      IP属地:海南4楼2015-01-04 16:30
      收起回复
        例3:必杀技系别修改
        以蝶光斩舞为例,其代码SuperStart318,编号318首位3表示必杀技系别(0通用,1剑2扇3刀4枪5弓6全武器系),后两位18为真实编号(TermText里的名称编号),通过修改编号首位就能更改必杀技的系别(superstart.ini里的编号也要同步修改)
        蝶光斩舞代码SuperStart318,流萤代码SuperStart006,如果交换2个代码位置即将318改为006,006改为318,则蝶光斩舞变为扇系通用必杀,而流萤变为刀系专属必杀


        IP属地:海南5楼2015-01-04 16:31
        收起回复
          二,指针替换法
          指针是一些占用4字节的二进制代码,根据指针的数值标记着一个地址,如

          其中指针E7 36 1A00标记地址0x1a36e7,78E0 08 00标记地址0x8e078,可以在UE中使用ctrl+g命令跳转到某个地址
          在左边的二进制代码中如果出现指针,通常表示程序进行到这里时将会跳转到指针标记的地址继续运行,例如94 F9 08 00是命疗术实际效果指针,即从0x8f994开始的代码定义了武将技命疗术的实际效果(回血效果),而如果script中出现了94 F9 08 00则表示在这里调用命疗术的效果,因此代码BFMagic107.和94 F9 08 00可以认为是等价的,见指针如见本体
          于是这类修改的基本内容就是通过替换script中出现的效果指针达到和可读代码交换相同的效果,其优点在于即便很多指针指向同一个地址也不会产生冲突,因此可以在保留原青龙特攻的情况下直接将重步兵特攻改为青龙雷电攻击
          例1:将神兽特效做成武器特效


          如图,WeaponStart073追踪光环特效,其实际效果指针为94 A7 17 00,白虎特效效果指针DC AC 18 00,为了让73号特效变为白虎特攻,将原本指向追踪光环的指针更改为指向白虎特效即可,于是在script.so中搜索94 A7 17 00(不选查找ASCII)

          将其修改为DC AC 18 00

          将73号特效加给武器进游戏测试


          IP属地:海南6楼2015-01-04 16:35
          收起回复
            例2:修改士兵特性

            图中标示处为士兵特性触发代码,使用上面的方法将实际效果指针替换为其他(必杀技,兵种特攻,特殊兵种特攻),则可让士兵在被攻击/攻击/杀死敌兵/被杀时发动特殊效果


            IP属地:海南7楼2015-01-04 16:36
            回复
              例3:必杀技判发条件修改

              图中所示代码为必杀技的判发条件,只有周围敌兵数量,敌将数量等达到一定条件才有可能发动必杀(周围敌军很少时就算用秘籍也不能发出必杀)
              以619贪狼啸为例,其条件代码的实际效果指针70 5E 01 00,首先我们在script中搜索这个指针看看到底哪里引用了它.


              共找到2处,第二处为可读代码与实际效果的关联指针,暂且不管,第一处位于0x44240处,查表格

              发现贪狼啸的实际效果代码正是从0x441a4开始的,毫无疑问贪狼啸短的实际效果中引用了一次判发代码用以判断是否可以发动该必杀,因此我们可以将第一张图中的该指针改成其他无用地址(如00 00 00 00?)来取消这个判发条件,但更好玩的是改成其他有效效果,会产生什么结果?
              首先尝试A8 C4 07 00旋灯

              然后F0 B7 09 00妖盾,只有最后一次释放武将技的一方为我方时会出现妖盾效果

              6C 92 15 00 神兵绝阵测试出现BUG,神兵绝阵的伤害效果出现在我方阵营,且贪狼啸没有触发,可能是因为神兵绝阵持续时间太长顶掉了必杀效果

              名将CG 94 8A 00 00 ,成功在释放必杀前显示了CG


              IP属地:海南8楼2015-01-04 16:41
              回复
                看不懂,没有理论基础


                IP属地:广东9楼2015-01-04 16:48
                回复
                  必须留名占楼!强化版的春节补丁,专属兵种加入武将必杀效果就好555的这个帖子了


                  IP属地:广西本楼含有高级字体10楼2015-01-04 17:22
                  回复
                    三,实际效果区的探索
                    例1:必杀连锁武将技
                    根据指针替换法,发现如果设定必杀前施放一个武将技,则有可能武将技耗时过长顶掉了必杀的效果,为了解决这个BUG,首先观察这张图

                    其中第二行的指针是每个必杀判发条件的实际效果,他们的代码长度不等,不过观察后发现216的起始位置0x15310,而紧接着的317起始位置0x15328,也就是说留给216判定条件的位置只有短短20多个字节,这么少的空间是怎么完成条件判定的?于是跳转到0x15310查看

                    跳过去后发现亮点,有一个指针54 48 01 00刚好就是必杀608的判定指针,于是这一小段代码意义马上明确,就是表示此必杀发动条件和608一样,那么如果利用这里的指针进行替换会不会获得更好的效果?果断把这里的指针改成了6C 92 15 00 神兵绝阵

                    然后将619贪狼啸的判定指针改为10 53 01 00

                    进游戏测试

                    发现成功在神兵绝阵之后发出了贪狼啸,解决了武将技顶掉必杀的BUG


                    IP属地:海南11楼2015-01-04 17:52
                    收起回复
                      例2:武将技连锁

                      铁轮斩系列武将技,其中铁轮斩的实际效果从0xa220c开始,为了对武将技效果进行修改,跳转到该地址查看

                      其中蓝色部分为铁轮斩,紧接其后的为铁轮斩的各升级形态,观察规律发现四个级别铁轮斩拥有一个共同的指针0C 22 0A 00刚好是BFMagic155_Base的实际效果指针,由此判断这个指针代表了铁轮斩系列的核心效果,而紧跟在FE FF FF FF 06后面的数据,四个级别铁轮斩依次为1,2,3,4.由此判断这个数据表示技能的强度
                      另外紧跟在核心指针0C 220A 00后面的数据02是个重要参数,如果改成03则在释放完这一行的武将技后会继续释放下一个武将技(铁轮血斩),即武将技连锁.
                      如下图

                      进游戏测试


                      连放两次,且第一次为铁轮斩,第二次为铁轮血斩
                      如果在连锁的同时修改核心指针,将铁轮斩的0C 22 0A 00改为挪移阵Base 50 19 0B 00则



                      IP属地:海南12楼2015-01-04 17:56
                      回复


                        IP属地:新加坡14楼2015-01-04 18:17
                        回复
                          例2:冻血刀持续时间,伏兵召唤数量
                          冻血刀

                          跳转到0x149dc8

                          其中7A 9C表示技能动画编号,关联OBD编号,42 03表示冻血刀物品编号,关联Thing.ini冻血刀,0A为持续时间(10秒),08 01表示技能编号,关联BFMagic.ini冻血刀,C8 9C 14为核心指针
                          伏兵

                          跳转到0x78de0

                          其中0A代表召唤数量(10个),FE FF FF FF下面的01代表出兵方位为己方阵营,改为0则为敌方阵营(后伏).FC 89 07为核心指针


                          IP属地:海南16楼2015-01-04 19:57
                          收起回复


                            IP属地:山东18楼2015-01-04 20:59
                            回复


                              IP属地:湖北来自Android客户端19楼2015-01-04 21:03
                              回复