三国群英传7修改吧 关注:171贴子:349
  • 26回复贴,共1

群七script.so运行原理

只看楼主收藏回复

三国群英传七 script.so文件修改 测试总结


来自Android客户端1楼2014-07-28 02:01回复
    整个script.so被分为三大部分,最前面的实际效果区,记录所有战场效果,技能所需的动画,图片,镜头移动,伤害范围时间等,技能释放最核心也是修改自由度最大的区域。中间的可读代码区,此为连接游戏exe和script的过渡区域,游戏中发动某效果时系统最先从这里检索关键字。最后的指针连接区,是联系前两部分的纽带和通道


    来自Android客户端2楼2014-07-28 02:32
    回复
      游戏根据设定好的程序,玩家点击武将技_xxx时,系统开始在script第二部分搜索关键字bfmagic001,第二部分记录有所有可触发的效果的简短代码,成功找到一处可读代码后,系统提取这段可读代码首字母的地址0x123456,这时候对应的地址指针56 34 12成了一条有用信息。


      来自Android客户端3楼2014-07-28 02:33
      回复
        第三部分是由n个循环节构成的板块,这里n跟第二部分记录的可读代码数量一样多。一般来说每个小节记录着两条信息,第一个是可读代码首字母的坐标,即入口,第二个是该可读代码应该提取的实际效果区的信息地址,即出口。系统通过可读代码区的信息在指针区顺利检索到入口,然后通过出口记录的地址找到实际效果区开始执行这个技能


        来自Android客户端4楼2014-07-28 02:34
        回复
          实际效果区也是有划分的,即每个武将技都有一个“本质效果”和一个“表面效果”表面效果=本质效果+很简洁的技能参数。这种划分方法是为了节省空间提高效率,因为一系列技能如玄冰斩,玄冰血斩,玄冰冻血斩除了轮子数量外实际上是一回事,因此先编写好一个本质效果,玄冰斩=本质效果指针一枚+轮子数量3,玄冰血斩=本质效果指针一枚+轮子数量5


          来自Android客户端5楼2014-07-28 02:35
          回复
            本质效果,即bfxxx_base效果,一个系列共用一个,可修改内容众多,但至今了解的仅仅是调用图片,投射物大小修改以及由bug造成的技能持续时间无限等,绝大多数依然是谜(顺便技能是否有伤害并非完全由script控制,obd里面的命令#sp_event_attack重要程度不下于script,很多技能如果从obd里删除这段代码就马上成了摆设)
            相对的bfxxx这个表面技能就容易理解的多,由于一系列技能共用一个“内核”,所以经常会看到三到四个同样的指针代码有序排列在一起...
            这三到四段简短的代码就是表面技能,那个关键指针就是他们共同的“内核 base代码的实际效果区”除此之外还能找到几个有用的表面参数比如技能等级,冻血刀的召唤物品编号和持续时间,伏兵的数量,赤焰技能火焰的数量,单单修改这些就能创造很强大的技能


            来自Android客户端6楼2014-07-28 02:50
            收起回复
              关于“内核”更为强大的作用在于他是可以替换的,把一个技能的“内核”指针替换为其他技能的,再填上对应的表面参数,就能完全变成其他技能,这点在连锁武将技和大量制造某类技能时很有用。比如制作出100个冻血刀类召唤技能,每个技能召唤出一种神器,把技能初始赋予对应的武将,张飞天生可以用技能召唤万胜丈八矛...


              来自Android客户端7楼2014-07-28 02:55
              回复
                总的来说系统的执行步骤为 可读代码——指针区入口——指针区出口——实际效果区位置——载入表面技能数据——载入内核数据,针对每一步都可以进行替换,a覆盖b可读代码可以将a效果变为b(优势在于部分特殊代码覆盖,如弑鬼神威力加强)。ab指针入口互换可以交换ab实际效果(由于指针都是4字节,不会损失技能,更重要的是避开可读代码会让其他修改党难以发现新技能是怎么做的)。将a的指针出口改为b的出口则a的实际效果变为b(优势在于这时a和b技能实际效果都是b,具有可重复性,同时也可以完成弑鬼神威力加强)。将a的内核指针变为b的内核,a的实际效果将变为b(优势在于连锁武将技使用和可重复性,可自定义表面参数)。


                来自Android客户端8楼2014-07-28 03:09
                回复
                  今天又学到很多,能不能举个具体例子


                  IP属地:海南来自手机贴吧9楼2014-08-06 08:53
                  回复
                    个人还有个设想,利用触发必杀技来触发军师计,比如触发大魔界,多触发几次对面武将武力就降为负数了。这在玩两宋打最后boss时还是可以的


                    IP属地:海南来自手机贴吧10楼2014-08-06 10:57
                    回复
                      将a的指针出口改为b的出口则a的实际效果变为b(优势在于这时a和b技能实际效果都是b,具有可重复性,同时也可以完成弑鬼神威力加强)。
                      这个好像不行,只能触发b效果,a效果丢失,至少必杀技是这样,比如群龙必杀技替换成朱雀特性后,只有朱雀特性起作用,,


                      IP属地:海南来自手机贴吧11楼2014-08-06 11:02
                      收起回复
                        是否可以考虑特性触发武将计军师计和冲阵计,比如特性的命回等


                        IP属地:海南来自手机贴吧12楼2014-08-06 11:14
                        收起回复
                          吧主知道怎么可以让官职最高武力智力限制生效吗?我想改成每个武将每个级别只能升级一个官职,Title.ini里面虽然有这个,但是是不生效的,应该是在哪里有控制让这个生效的开关,但就是没有头绪


                          IP属地:福建13楼2016-08-17 11:36
                          收起回复