群英Ⅲ吧 关注:12,910贴子:214,631

整理一下前辈们的修改教程

只看楼主收藏回复

祈求度娘勿抽风!!!
最近逛贴吧看到很多人问各种修改的问题,原来是以前的精品贴看不到的原因,作为一个远古玩家,受过各路大神的修改教程恩惠,因此我决定开个贴整理一下各项修改。如有错漏请指正!
(PS以下内容均为前大神们的辛勤劳作成果,我只是搬运!再次感谢前辈们的成果)


IP属地:广东1楼2019-06-25 18:51回复
    必备工具:UE或OD
    常见问题(大佬请忽视。。):怎么找不到那个地址?怎么定位地址?
    答:比如说15人出征地址的原版exe地址是247BB,则UE打开exe,快捷键ctrl+G跳转地址,输入0x247BB即可定位。
    主程序EXE相关修改:
    1.必杀率修改(敌我通用型):
    用UE/WE打开EXE,地址跳到:0x3C7BB ,
    看到E8 03 00 00 即十进制的1000,该值越小,必杀技越容易触发,简单讲就是改随机数,最普遍的改法
    简单讲,改的是一个随机数最大范围值,原版必杀技触发概率=(01000)随机数<判断值(武将因素决定)则触发成功,所以改小随机数最大值或是改大判断值都可以更容易触发必杀技
    2.特殊事件触发概率修改
    需知:触发历史事件则不会触发特殊事件,两者不会一起触发,且历史事件始终优先于特殊事件,同时若关掉历史事件则也会关掉特殊事件
    UE/WE打开EXE
    27392:31 该随机值决定是否触发特殊事件,若低于9则必定触发特殊事件(09)
    备注:修改时最好把它改成10,不要低于10
    低于10,亲测极难(或者不能)触发象虎事件
    3.想同AI一样自动升级、自动学武将技、自动学必杀技、自动.....
    只需要用UE/WE打开EXE,地址转到57B7C:将74 08改为90 90即可
    4.怎么修改体力和技力升级的增长量
    体力:5C21B:14 技力:5C24A:03 数值越小增加的越多
    代码前面设置了上限值,HP最大5,最低2,MP最大3,最低1,
    HP-5C186:05
    5C188:02
    MP-5C19B:03
    5C19D:01
    5.修改血量上限及显示完美方法:
    对2.1有效(2.0的地址我记得以前吧里有位大佬“石头白板”曾经研究过现在找不到那个贴)
    怎么修改超过255:
    修改exe,用ue打开,地址5d870h,FF 00 00 00这段就是血量上限的代码,即255,5d8eah是魔法上限
    怎么让血条不溢出
    UE打开exe,找到地址427d6h, FF 00就是血量,
    地址428b0h是魔法FF 00
    6.关于电脑自动学习必杀相关
    取消电脑自动学习必杀:
    (OD)将地址00458C05处的数据E8 C8 01 00 00 修改为EB 06 90 90 90
    (UE)将地址58c05处的E8 C8 01 00 00 修改为EB 06 90 90 90
    保持电脑自动学习必杀,但是改变他学习的条件。原版是武力高于80就自动学习了,你可以自己设定数值。
    (用OD)地址是00458DEA,此处原本代码是83f8 50,这个50就是武力80,改成你需要的即可。
    (用UE)把58DEC处的50改成你需要的即可。
    7.俘虏武将后装备不消失的方法
    用OD。
    0045974E:6A 02----》EB 1C
    用UE等16位编辑器。
    把5974E处的6A 02改成EB 1C
    8.再说下修改武将的带兵量只和等级挂钩,也就是官职没用了,你也不用发愁400兵的官职不够用了,反正你等级高了就带400兵。
    方法由胡杨大神提供:
    用UE之类的工具打开主程序,将地址5B1A4处(2.1繁体版)的2A修改为00即可。
    PS:这个方法的原理是当系统判断武将是不是君主时,如果判断了武将非君主,他将要按官职设定兵力,而如果是君主,他就按等级设定兵力。那么我们把2A改成了00,就是让他判断出武将非君主时也按照君主的模式去设定兵力。
    9.修改必杀技携带上限相关
    如何设置让武将装备多个必杀。以4个必杀为例。
    首先改下边这两处,让武将可以装备4个必杀(OD打开exe查看sango3模块 CTRL+G转到下面地址)
    00409405 83F8 04 cmp eax,0x4
    0045D966 83F8 04 cmp eax,0x4
    双击汇编改成上面。每改一处保存一处。保存一处后关闭再打开继续改。
    然后要修改以下地方
    存档:在0045CE87处跳转到空白地址,我跳转的是004FBAE2,然后在该地址处输入下列代码
    (在汇编处输入后面的如果出现未标识 则输入中间那段)
    004FBAE2 8B5D EC mov ebx, dword ptr[ebp-14]
    004FBAE5 F7C3 01000000 test ebx, 1
    004FBAEB 75 0A jnz short 004FBAF7
    004FBAED 8B10 mov edx, dword ptr [eax]
    004FBAEF 83E2 0F and edx, 0F
    004FBAF2 C1E2 04 shl edx, 4
    004FBAF5 EB 11 jmp short 004FBB08
    004FBAF7 8B4D 08 mov ecx, dword ptr [ebp+8]
    004FBAFA D1EB shr ebx, 1
    004FBAFC 03CB add ecx, ebx
    004FBAFE 8A91 D4000000 mov dl, byte ptr[ecx+D4]
    004FBB04 8A00 mov al, byte ptr [eax]
    004FBB06 02D0 add dl, al
    004FBB08 8B4D 08 mov ecx, dword ptr [ebp+8]
    004FBB0B 8B5D EC mov ebx, dword ptr[ebp-14]
    004FBB0E D1EB shr ebx, 1
    004FBB10 03CB add ecx, ebx
    004FBB12 ^ E9 7513F6FF jmp 0045CE8C
    读档:修改0045C729处,改成如下的内容:
    0045C729 25 FF000000 and eax, 0FF
    0045C72E 85C0 test eax, eax
    0045C730 7E 17 jle short 0045C749
    0045C732 8B4D D8 mov ecx, dword ptr[ebp-28]
    0045C735 E9 DDF30900 jmp 004FBB17
    0045C73A 90 nop
    0045C73B 90 nop
    0045C73C 90 nop
    0045C73D 90 nop
    0045C73E 90 nop
    0045C73F 90 nop
    0045C740 90 nop
    0045C741 90 nop
    0045C742 90 nop
    0045C743 90 nop
    0045C744 90 nop
    0045C745 90 nop
    0045C746 90 nop
    0045C747 90 nop
    0045C748 90 nop
    注意:在0045C735处跳转到空白地址,我跳转到的是004FBB17,然后在此地址输入下列代码:
    004FBB17 36:8D9429 DCFEFF>lea edx, dwordptr ss:[ecx+ebp-124] 读取存档设置激活必杀
    004FBB1F 25 FF000000 and eax, 0FF
    004FBB24 8BC8 mov ecx, eax
    004FBB26 C1E8 04 shr eax, 4
    004FBB29 83F8 00 cmp eax, 0
    004FBB2C 74 16 je short 004FBB44
    004FBB2E 51 push ecx
    004FBB2F 52 push edx
    004FBB30 8B8D B0FDFFFF mov ecx, dword ptr[ebp-250]
    004FBB36 81C1 BC010000 add ecx, 1BC
    004FBB3C 8802 mov byte ptr [edx], al
    004FBB3E E8 CD3CF6FF call 0045F810
    004FBB43 59 pop ecx
    004FBB44 83E1 0F and ecx, 0F
    004FBB47 83F9 00 cmp ecx, 0
    004FBB4A 74 1F je short 004FBB6B
    004FBB4C 8B45 D8 mov eax, dword ptr[ebp-28]
    004FBB4F 36:8D9428 DCFEF>lea edx, dwordptr ss:[eax+ebp-124]
    004FBB57 880A mov byte ptr [edx], cl
    004FBB59 52 push edx
    004FBB5A 8B8D B0FDFFFF mov ecx, dword ptr[ebp-250]
    004FBB60 81C1 BC010000 add ecx, 1BC
    004FBB66 E8 A53CF6FF call 0045F810
    004FBB6B ^ E9 D90BF6FF jmp 0045C749
    这样的结果就是武将可以装备4个必杀,但是这个有点欺负电脑,因为电脑还是傻傻的只装备3个,所以修改的时候要适度。
    那么电脑呢?用UE打开主程序,把 00591e5处的03改成04,电脑就能装4个必杀了
    10.比如大会奖励,用OD修改
    0041096F 69D2 C8000000 imul edx, edx, 0C8 第一名额外增加的金钱
    00410975 81C2 20030000 add edx, 320 基础奖励金钱,也就是第二名的
    0041097B 8995 A0FEFFFF mov dword ptr[ebp-160], edx
    00410981 8B85 BCFEFFFF mov eax, dword ptr[ebp-144]
    00410987 6BC0 32 imul eax, eax, 32 第一名额外增加的功勋
    0041098A 83C0 32 add eax, 32 基础奖励功勋,也就是第二名的
    0041098D 8985 B8FEFFFF mov dword ptr[ebp-148], eax
    00410993 8D8D 4CFEFFFF lea ecx, dword ptr[ebp-1B4]
    00410999 51 push ecx
    11.城池武將容量
    用od载入exe,右键--查找---所有命令序列;在弹出窗口中分三行输入3条指令(可以直接复制下列3条指令即可):
    push 0
    push 1e
    push 5
    这个push 1e。1E就是30的意思改成自己想要的就可以了。


    IP属地:广东2楼2019-06-25 18:51
    收起回复
      【必杀专楼】
      必杀相关修改
      一.改必杀技挑斩和生擒的条件。
      用16进制的编辑器比如UE打开SUPERATTACK.SO。必杀都在这里改。
      1.挑斩。
      地址68a0h,此处的1E是剩余血量的值,原版是30,改成你需要的,比如改成64,就是剩余100就有机会发动了。
      然后定位到68d0h,那个0A就是发动挑斩需要的武力差值,原版是需要相差10点。改成你需要的即可。
      2.生擒。
      定位到76E0h,把此处的19改成你需要的数值。原版19是相差25点武力才能发动。想改成差10点武力就改成0A。
      二、必杀威力修改
      【连刺】:
      对主将造成3次伤害,大概就是常规伤害 * 以下值(浮点数) = 每一次造成的伤害
      请先百度下载一款工具【16进制转浮点数】,因为以下数据是【浮点数的16进制值】........老子得开OD详细测试EXE才知道原来是采用浮点数算法....
      5488:9A 99 99 3E(反过来就是16进制:3E 99 999A,浮点数则是0.3)
      54D4:9A 99 99 3E
      5520:9A 99 99 3E
      【一击】:
      大概就是常规伤害 * 以下值 = 最终伤害
      72F4:02(伤害倍数 越大伤害越高)
      【乱舞】:
      对主将造成4次伤害........同【连刺】一样是采用浮点数算法
      PS:这个好像有误差。。理论应该是打16血 实际确实12血
      原因好像是只要是关于4的,都会转为3,其他必杀也是这样。。尴尬。。
      我发现规律是递减的,比如如果是关于3,则转为2。。。。(貌似是浮点数有误差的)
      7F68:CD CC CC 3E(反过来就是16进制:3E CC CCCD,浮点数则是0.4)
      8030:CD CC CC 3E
      80F8:CD CC CC 3E
      82A8:CD CC CC 3E
      【大喝】:
      59D8:01 (伤害倍数 越大伤害越高 06 00 00 00后面的01)
      5A30:01
      5A84:01
      5AD4:01
      5B24:01
      5B78:01
      5BD4:01
      5C30:01
      5C90:01
      PS:如果想改成1.5倍这种小数的怎么办?将上面的01改为你想要的浮点数16进制值(后面的00跟着替换),然后再把后面的48改为00,意思取消LTOF指令,让数据进入游戏里转换
      【拖刀】:
      5FA4:3F C0 00 00(浮点数)
      5FFC:3F C0 00 00
      6054:3F C0 00 00
      【气旋】:(方法同大喝)
      常规伤害 * 以下值 = 最终伤害
      635C:01(伤害倍数 越大伤害越高)
      63AC:01
      6400:01
      6454:01
      64A4:01
      64F8:01


      IP属地:广东3楼2019-06-25 18:52
      收起回复
        添加城池方法
        1、在Setting文件下找到MenuMap,用UE打开文件能看到城池的信息


        最后一城池 添加新的就可以在Child=7794 ;居延

        再在7793城池信息下面添加
        [WINDOW]
        Comment = 居延
        ID = 7794
        Style = wsIcon, wsVCenter, wsHCenter,wsCheck, wsClipping
        Class = WND_CLASS_CITYBUTTON
        Range = 58, 67, 45, 24
        Icon = 7305
        Check = 7309
        Command = 292
        保存后城池就添加上了
        其中Range = 904,658, 24, 19 前面两个是座标(可以用画图板看坐标,像素即坐标),后面是图标像素
        大城是
        Icon = 7303
        Check = 7307
        中城
        Icon = 7304
        Check = 7308
        小城
        Icon = 7305
        Check = 7309
        关卡
        Icon = 7306
        Check = 7310
        2、接下来是城池的小地图在MAP文件下
        复制一个MAP00X.BLK,在最后面添加对应城池的序号如居延对应192(Command = 292再减去100),就添加MAP192.BLK
        3.添加城池线路在Setting文件下city、city1~7
        City是城市路线文件,city1~7为剧本文件
        用ini打开city
        在最后一行添加ITEM 居延 192 2 2 填写连接的城市,而且要保证相互连接,即另一个城市也要与新城市连接
        city1~7为剧本文件也要添加
        4、最后就是城池坐标的问题了
        在shape下AD下BASE中找到MAP.shp和CITIESNAME.shp
        MAP.shp是大地图,CITIESNAME.shp是大地图上城市的名字
        用RPGViewer3.0 导出来PNG格式的
        用绘图软件打开(自带的画图软件和PS都可以定位坐标)
        坐标有可能需要多次调解位置, 定好坐标后,用线把城市连接起来就完事了(钢笔工具)。
        CITIESNAME.shp也是同样的道理,只是添加的是城市的名称
        都做完之后把MAP.shp和CITIESNAME.shp导回原文件中就行了(可以另外创建文件夹如\Shape\AD\Base)
        (Map文件夹里面也要替换CITIESNAME.shp)


        IP属地:广东4楼2019-06-25 18:58
        收起回复
          应该差不多了,剩下的ini文件的修改比较简单,就不再叙述了,欢迎大家讨论,有问题的我尽我能力帮助你


          IP属地:广东5楼2019-06-25 18:59
          收起回复


            IP属地:河北7楼2019-06-25 20:36
            收起回复
              自设武将更改(NewGeneral.ini 文件)
              [ITEM]
              Shape = //头像图片路径,图片后缀名 .SHP
              Justice = //义理,值越高越不容易背叛,相反值低时容易被离间叛逃
              Morale = //士气
              Personality = //相性,越近越容易搜到,魏25,蜀75,吴125
              WeaponType = //武器类型
              BFShape = //战场造型
              Rank = //阵型
              SuperAttack = //初始必杀
              Token = //初始装备,兵符
              Book = //初始装备,书籍
              Horse = //初始装备,马匹
              Weapon = //初始装备器


              IP属地:河北9楼2019-06-25 20:41
              收起回复
                新增及更改官职(GenTitle.ini 文件)
                [ITEM]
                No = 0 //ID编号
                Name = 盠 //官职名称
                Level = 1 //任命官职所需等级
                Soldiers = 40 //带兵数量,最多400
                物品修改(thing.ini 文件)
                [ITEM]
                Name = //名称
                Type = //类型
                Count = //数量
                Statement = //描述
                Icon = //图标
                Level = //装备等级
                Increment = //效果
                Increment2 = //...
                Increment3 = //...
                FindRate = //搜索几率
                Attraction = //吸引力
                Attribute = //属性,与物品类型相关联
                武将计修改(Bfmagic.ini 文件)
                [BF_MAGIC]
                No = //ID编号
                Name = //名称
                MP = //所消耗值
                Power = //技能杀伤力值
                Level = //学会等级
                Contribution = //所需功勋
                IntUp = //设定的智力上限
                IntDown = //设定的智力下限
                StrUp = //设定的武力上限
                StrDown = //设定的武力下限
                NoArena = //比武是否可用(0可以,1不可以)
                Attribute = //属性
                Spec = //说明
                GoodTerrain = //适用地形
                BadTerrain = //禁用地形
                GoodTimeZone = //适用时间
                BadTimeZone = //禁用时间
                GoodWeather = //适用天气
                BadWeather = //禁用天气


                IP属地:河北10楼2019-06-25 20:43
                收起回复
                  终于来了一个精品贴


                  IP属地:广东来自Android客户端11楼2019-06-25 21:43
                  收起回复
                    我的玩几年后,在对战某位武将就会跳出〒_〒


                    IP属地:福建来自Android客户端12楼2019-06-26 00:04
                    收起回复
                      这个必须要顶,虽然我看不懂呵呵


                      IP属地:广东13楼2019-07-04 21:46
                      回复
                        大神,可以指导一下修改必杀数量吗?你说的步骤我没怎么看懂


                        IP属地:河南来自iPhone客户端19楼2019-07-19 18:06
                        回复


                          IP属地:江苏来自iPhone客户端20楼2019-07-20 12:53
                          回复
                            这个整理的好,方便查询


                            IP属地:山东来自Android客户端21楼2019-07-24 09:12
                            回复
                              表示支持


                              IP属地:天津来自Android客户端22楼2019-07-24 09:53
                              回复