曹操传吧 关注:87,838贴子:1,313,678

回复:能不能改一下AI的设定, 稍微有点恶心了

只看楼主收藏回复

首先物理攻击如果能打出伤害,那么基础价值是4点,对于敌军主将还要额外+4点。如果没有造成伤害(如远程兵碰到镜铠,必爆遇到防爆),那么该基础价值只有1点。
然后物理伤害的直接价值公式是(伤害*100/被攻击者hp血量),这意味着伤血比例如果不到1%,那么这一项就1点价值都没有。
此外ai的攻击如果会被反击,物理伤害价值还会被-1;同时ai拥有一个“保留原地”的价值,保留在原地的价值+1;同时还要考虑 ai原地处于恢复地形的话,保留原地的地形加成也会有额外的2点。
这样一来一回,就能理解为什么ai对于打不动的敌人 会倾向于赖在原地了。你图里窝阔台对于我军角色的攻击价值只有1点,但是留在原地的价值是有3点的;同时因为这个1价值的我军在他范围内,所以他前面的回合不会考虑攻击范围之外的9价值友军,这样就被卡死在原地了。
那么提升ai的侵略性也有很多办法,总之就是想办法增加ai的价值。以下修改请谨慎选择
①即使没伤害(必被挡),也提供4点基础价值,这样远程兵对镜铠持有者的侵略性也会大大提升:
00438A3F 90 nop
00438A40 90 nop
②删除ai保留原地的附加价值,鼓励ai跑动:0043A704 mov [local.8],0 (可能会导致ai乱跑,没测过,慎改)
③在剧本中,将【战场全局变量】里的敌军主将设成我军的角色。是的没看错,是把【敌军主将】设成【我军角色】,这样所有敌军对该角色会有额外附加的4点价值。有这额外4点,敌军对于该角色的侵略性会暴增
④提高基础价值点数:00438AA2 add [local.1],4,这里的4就是基础物理攻击价值点数。为什么是4呢,因为4可以刚好盖过 【地形适性的加成】和【保留原地的加成】,鼓励ai少逗留 多出击
⑤可以做一个伤害保底,让ai伤害的下限提高:
0043BF24 /E9 F4030000 jmp Ekd52.0043C31D
0043BF29 |90 nop
E9 F4 03 00 00 90
0043C31D 8B45 FC mov eax,dword ptr ss:[ebp-4]
0043C320 83F8 05 cmp eax,5 自己改
0043C323 77 05 ja short Ekd52.0043C32A
0043C325 B8 05000000 mov eax,5 自己改
0043C32A 8BE5 mov esp,ebp
0043C32C 5D pop ebp
0043C32D C2 0C00 retn 0C
8B 45 FC 83 F8 05 77 05 B8 05 00 00 00 8B E5 5D C2 0C 00
其余的项目都可以使用ai价值编辑器去调整,就看作者喜好了。


IP属地:上海17楼2024-06-23 12:48
收起回复
    研究了一下,导致这个问题的原因是【穿透攻击只能攻击到1个单位,仇恨-4】,没有穿透攻击单位,保底仇恨是5,有穿透的单位会通过以上情况变成1,从而导致敌军不会攻击。
    以下是原代码
    00438C0B |. 75 14 JNZ SHORT Ekd5.00438C21
    00438C0D 837D 0C 04 CMP DWORD PTR SS:[EBP+C],4
    00438C11 |. 7E 06 JLE SHORT Ekd5.00438C19
    00438C13 836D 0C 04 SUB DWORD PTR SS:[EBP+C],4
    00438C17 |. EB 03 JMP SHORT Ekd5.00438C1C
    00438C19 |> 8955 0C MOV DWORD PTR SS:[EBP+C],EDX
    如果要修改的话,可以这样【穿透也保底是5】
    00438C0D E9 29020000 JMP Ekd5-2.00438E3B 原地址位置不够跳走
    00438C12 | 90 NOP
    00438C13 | 90 NOP
    00438C14 | 90 NOP
    00438C15 | 90 NOP
    00438C16 | 90 NOP
    00438C17 | 90 NOP
    00438C18 | 90 NOP
    00438C19 | 90 NOP
    00438C1A | 90 NOP
    00438C1B | 90 NOP
    00438C1C E9 D6010000 JMP Ekd5-2.00438DF7
    跳转后的位置写入
    00438E39 EB 34 JMP SHORT Ekd5-2.00438E6F
    00438E3B 836D 0C 04 SUB DWORD PTR SS:[EBP+C],4
    00438E3F 837D 0C 05 CMP DWORD PTR SS:[EBP+C],5
    00438E43 73 07 JNB SHORT Ekd5-2.00438E4C
    00438E45 C745 0C 040000>MOV DWORD PTR SS:[EBP+C],4
    00438E4C ^E9 CAFDFFFF JMP Ekd5-2.00438C1B


    IP属地:北京19楼2024-06-23 16:02
    收起回复
      2025-07-31 07:26:57
      广告
      不感兴趣
      开通SVIP免广告
      这是哪个版本的mod


      IP属地:越南20楼2024-06-24 11:01
      回复
        小兵:我感觉我不动还能多活几回合


        IP属地:四川来自Android客户端21楼2024-06-25 06:18
        回复
          好多大神讨论


          IP属地:广东来自Android客户端22楼2024-06-25 22:54
          收起回复
            这是仇恨的问题,不是故意设计成这样的


            IP属地:辽宁来自iPhone客户端23楼2024-06-25 23:41
            回复