标题: 猪猪版三国志孔明传的兵种攻防升级能力修改(附修改器下载)
性别:未知-离线 ctermiii


Rank: 5Rank: 5
轩辕春秋年度最佳(游戏人生区)
组别 羽林都尉
级别 破贼校尉
好贴 1
功绩 92
帖子 90
编号 50655
注册 2005-10-7


发表于 2010-7-17 13:52 资料 文集 短消息 看全部作者
04 05 06 04 05 06 05 06 07 03 03 03 02 02 02 05
06 07 04 04 04 05 05 08 0A 06 08 03 03 03 05 07
07 07 05 05 02 05 04 05
exe里0x451F50的位置这40个数是什么?
台词:某某某全力一击的时候,会先取对应兵种的这个数,比如骑兵(代号06)取第7个数05
然后取100以内的随机数,如果随机数小于这个05,就发生:“某某某全力一击”。

某个状态下,这个值会被/2


0042397D  |.  8B45 EC       MOV EAX,DWORD PTR SS:[EBP-14]
00423980  |.  8B0C88        MOV ECX,DWORD PTR DS:[EAX+ECX*4]
00423983  |.  E8 0E6A0000   CALL 0042A396         ;这里就是取0x451F50表格里的某个兵种对应的数并查看武将状态
00423988  |.  33DB          XOR EBX,EBX
0042398A  |.  8AD8          MOV BL,AL      ;这个就是上边提到的结果05
0042398C  |.  6A 64         PUSH 64                                          
0042398E  |.  E8 95390200   CALL 00447328           ;这两个是求100以内的随机数
00423993  |.  83C4 04       ADD ESP,4
00423996  |.  3BD8          CMP EBX,EAX
00423998  |.  0F86 16000000 JBE EKD2Win.004239B4                     ;  全力一击的概率
0042399E  |.  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
004239A1  |.  8D0440        LEA EAX,DWORD PTR DS:[EAX+EAX*2]
004239A4  |.  99            CDQ
004239A5  |.  2BC2          SUB EAX,EDX
004239A7  |.  C1F8 01       SAR EAX,1
004239AA  |.  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX
004239AD  |.  C745 F0 01000>MOV DWORD PTR SS:[EBP-10],1

本帖最近评分记录
阿尔法孝直 2010-7-17 13:55 +100 破解暴击算法!!


精华帖
顶部
性别:未知-离线 ctermiii


Rank: 5Rank: 5
轩辕春秋年度最佳(游戏人生区)
组别 羽林都尉
级别 破贼校尉
好贴 1
功绩 92
帖子 90
编号 50655
注册 2005-10-7


发表于 2010-7-17 14:52 资料 文集 短消息 看全部作者
从代码来看只有这种情况,只跟兵种和随机数有关;你可以把哪个64H改成比表格里最小的数还小的,比如改为02,除了打不中之外,次次全力一击


精华帖
顶部
性别:未知-离线 ctermiii


Rank: 5Rank: 5
轩辕春秋年度最佳(游戏人生区)
组别 羽林都尉
级别 破贼校尉
好贴 1
功绩 92
帖子 90
编号 50655
注册 2005-10-7


发表于 2010-7-18 11:59 资料 文集 短消息 看全部作者
IDA真强大……


光荣的随机数,从三国志4~9(我只改过这些,其他不知道)以及英杰传系列,随机数都是差不多的算法;
肯定有41C64E6DH和3039H这两个数并且一前一后,所以我直接去搜索这两个数,先确认随机数函数是哪个,对它下断点,然后进游戏攻击一下,断下来就肯定是相关的函数了,剩下的就是分析程序了。

你说哪个随机数的问题,只能尽量多的让处理玩家动作的函数调用随机函数,才有现在经常说的改变行动顺序来改变随机结果的办法;但早期系统资源有限,如果调用太多会影响系统响应速度,所以只有某些情况下才调用;

你可以改啊,改成每战开始,随机数不复位就行。

不过据我所知,这个0001不是每战开始复位的,而是每次运行exe文件的时候才这样;

[ 本帖最后由 ctermiii 于 2010-7-18 12:10 编辑 ]
精华帖
顶部
性别:未知-离线 ctermiii


Rank: 5Rank: 5
轩辕春秋年度最佳(游戏人生区)
组别 羽林都尉
级别 破贼校尉
好贴 1
功绩 92
帖子 90
编号 50655
注册 2005-10-7


发表于 2010-7-18 12:40 资料 文集 短消息 看全部作者
嗯,那跟战旗类有关,其他界面都是剧情没有战斗,可能没有参与随机数;
像三国志类的,一般这个随机数会写入存档的
精华帖
顶部
性别:未知-离线 ctermiii


Rank: 5Rank: 5
轩辕春秋年度最佳(游戏人生区)
组别 羽林都尉
级别 破贼校尉
好贴 1
功绩 92
帖子 90
编号 50655
注册 2005-10-7


发表于 2010-7-18 14:27 资料 文集 短消息 看全部作者
截取一小部分:

这里应该只是物理攻击伤害吧,我的诸葛亮才1级,没策略,没试。
这个伤害算出来后,返回我之前贴的函数后边计算,
最最终的伤害是你已经写出来的那些:
1、致命一击
2、反击
3、加上或者减去等级因素的随机值


结论是:
除了几个特殊兵种怕或者不怕物理攻击外,没有什么相克关系
可能是用兵种成长特性和初始特性来决定所谓的相克了
....................................
0042A514   .  8B4D DC       MOV ECX,DWORD PTR SS:[EBP-24]
0042A517   .  E8 05FEFFFF   CALL <EKD2Win.GetBingZhongDiXingXiuZheng>
0042A51C   .  8845 F8       MOV BYTE PTR SS:[EBP-8],AL
0042A51F   .  8B4D E4       MOV ECX,DWORD PTR SS:[EBP-1C]
0042A522   .  E8 FAFDFFFF   CALL <EKD2Win.GetBingZhongDiXingXiuZheng>
0042A527   .  8845 EC       MOV BYTE PTR SS:[EBP-14],AL
0042A52A   .  C745 F0 00000>MOV DWORD PTR SS:[EBP-10],0
0042A531   .  8B4D DC       MOV ECX,DWORD PTR SS:[EBP-24]
0042A534   .  E8 FEFBFFFF   CALL <EKD2Win.GetGongJi_>                                  ;  攻击方攻击力
0042A539   .  33C9          XOR ECX,ECX
0042A53B   .  8A4D F8       MOV CL,BYTE PTR SS:[EBP-8]
0042A53E   .  0FAFC1        IMUL EAX,ECX
0042A541   .  B9 0A000000   MOV ECX,0A
0042A546   .  2BD2          SUB EDX,EDX
0042A548   .  F7F1          DIV ECX
0042A54A   .  8945 FC       MOV DWORD PTR SS:[EBP-4],EAX                               ;  攻击方攻击力x攻击方所在地形因素/10
0042A54D   .  8B4D E4       MOV ECX,DWORD PTR SS:[EBP-1C]
0042A550   .  E8 D2FCFFFF   CALL <EKD2Win.GetFangYu_>                                  ;  防御方防御力
0042A555   .  33C9          XOR ECX,ECX
0042A557   .  8A4D EC       MOV CL,BYTE PTR SS:[EBP-14]
0042A55A   .  0FAFC1        IMUL EAX,ECX
0042A55D   .  B9 0A000000   MOV ECX,0A
0042A562   .  2BD2          SUB EDX,EDX
0042A564   .  F7F1          DIV ECX
0042A566   .  8945 E0       MOV DWORD PTR SS:[EBP-20],EAX                              ;  防御力x地形因素/10
0042A569   .  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]                               ;  攻击方攻击力x攻击方所在地形因素/10
0042A56C   .  50            PUSH EAX                                                   ; /Arg1
0042A56D   .  E8 B6CD0100   CALL <EKD2Win.Random%Arg1>                                 ; \Random%Arg1
0042A572   .  83C4 04       ADD ESP,4
0042A575   .  8BC8          MOV ECX,EAX
0042A577   .  BB 0A000000   MOV EBX,0A
0042A57C   .  8B45 E0       MOV EAX,DWORD PTR SS:[EBP-20]
0042A57F   .  2BD2          SUB EDX,EDX
0042A581   .  F7F3          DIV EBX
0042A583   .  3BC8          CMP ECX,EAX                                                ; 随机数%(攻击力x地形因素/10)大于等于防御力x地形因素/10/10则往下走
0042A585   .  0F83 28000000 JNB EKD2Win.0042A5B3
0042A58B   .  837D 0C 00    CMP DWORD PTR SS:[EBP+C],0
0042A58F   .  0F84 1E000000 JE EKD2Win.0042A5B3
0042A595   .  6A 10         PUSH 10                                                    ; /这个不知道什么状态,如果满足前面条件,此状态下不会受伤
0042A597   .  8B4D E4       MOV ECX,DWORD PTR SS:[EBP-1C]                              ; |
0042A59A   .  E8 B1EBFDFF   CALL <EKD2Win.CheckIfSomeStatus>                           ; \CheckIfSomeStatus
0042A59F   .  85C0          TEST EAX,EAX
0042A5A1   .  0F85 0C000000 JNZ EKD2Win.0042A5B3
0042A5A7   .  33C0          XOR EAX,EAX
0042A5A9   .  E9 E6000000   JMP EKD2Win.0042A694
0042A5AE   .  E9 D9000000   JMP EKD2Win.0042A68C
0042A5B3   >  8B45 E0       MOV EAX,DWORD PTR SS:[EBP-20]                              ;  防御力x地形因素/10
0042A5B6   .  40            INC EAX
0042A5B7   .  C1E8 01       SHR EAX,1                                                  ;  (防御力x地形因素/10+1)/2
0042A5BA   .  3B45 FC       CMP EAX,DWORD PTR SS:[EBP-4]
0042A5BD   .  0F82 0C000000 JB EKD2Win.0042A5CF
0042A5C3   .  C745 F0 01000>MOV DWORD PTR SS:[EBP-10],1         ;(防御力x地形因素/10+1)/2大于攻击方攻击力x攻击方所在地形因素/10,只受1点伤害
0042A5CA   .  E9 0E000000   JMP EKD2Win.0042A5DD
0042A5CF   >  8B45 FC       MOV EAX,DWORD PTR SS:[EBP-4]
0042A5D2   .  8B4D E0       MOV ECX,DWORD PTR SS:[EBP-20]
0042A5D5   .  C1E9 01       SHR ECX,1
0042A5D8   .  2BC1          SUB EAX,ECX                                                ;  
0042A5DA   .  8945 F0       MOV DWORD PTR SS:[EBP-10],EAX               ; 小于的话,伤害为:防御力x地形因素/10-攻击力x地形因素/10/2
0042A5DD   >  8B4D E4       MOV ECX,DWORD PTR SS:[EBP-1C]
0042A5E0   .  E8 BBECFDFF   CALL <EKD2Win.GetBingZhong_>                               ;  物理攻击只跟防御方兵种有关,除了下边特殊兵种,没有其他相克关系
0042A5E5   .  33C9          XOR ECX,ECX
0042A5E7   .  8AC8          MOV CL,AL
0042A5E9   .  894D D8       MOV DWORD PTR SS:[EBP-28],ECX
0042A5EC   .  E9 3C000000   JMP EKD2Win.0042A62D
0042A5F1   >  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]                              ; 防御方兵种代号9、A、B的时候伤害为75%
0042A5F4   .  8D0440        LEA EAX,DWORD PTR DS:[EAX+EAX*2]
0042A5F7   .  C1E8 02       SHR EAX,2
0042A5FA   .  8945 F0       MOV DWORD PTR SS:[EBP-10],EAX
0042A5FD   .  E9 8A000000   JMP EKD2Win.0042A68C
0042A602   >  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]                              ;  防御方兵种代号1B、1C、1D伤害达150%
0042A605   .  8D0440        LEA EAX,DWORD PTR DS:[EAX+EAX*2]
0042A608   .  C1E8 01       SHR EAX,1
0042A60B   .  8945 F0       MOV DWORD PTR SS:[EBP-10],EAX
0042A60E   .  E9 79000000   JMP EKD2Win.0042A68C
0042A613   >  C16D F0 01    SHR DWORD PTR SS:[EBP-10],1                                ;  兵种代号1E、1F被攻击只有伤害50%
0042A617   .  E9 70000000   JMP EKD2Win.0042A68C
0042A61C   >  C745 F0 01000>MOV DWORD PTR SS:[EBP-10],1                                ;  某个bt兵种,代号22H,只有1点伤害0042A623   .  E9 64000000   JMP EKD2Win.0042A68C                                       ;  其他没有另外加成伤害
0042A628   .  E9 5F000000   JMP EKD2Win.0042A68C
0042A62D   >  836D D8 09    SUB DWORD PTR SS:[EBP-28],9
0042A631   .  837D D8 1E    CMP DWORD PTR SS:[EBP-28],1E
0042A635   .  0F87 51000000 JA EKD2Win.0042A68C
0042A63B   .  8B45 D8       MOV EAX,DWORD PTR SS:[EBP-28]                              ;  兵种代号-9
0042A63E   .  33C9          XOR ECX,ECX
0042A640   .  8A88 6DA64200 MOV CL,BYTE PTR DS:[EAX+42A66D]
0042A646   .  FF248D 4DA642>JMP DWORD PTR DS:[ECX*4+42A64D]
0042A64D   .  F1A54200      DD EKD2Win.0042A5F1                                        ;  分支表 被用于 0042A646
0042A651   .  02A64200      DD EKD2Win.0042A602
0042A655   .  13A64200      DD EKD2Win.0042A613
0042A659   .  1CA64200      DD EKD2Win.0042A61C
0042A65D   .  13A64200      DD EKD2Win.0042A613
0042A661   .  F1A54200      DD EKD2Win.0042A5F1
0042A665   .  13A64200      DD EKD2Win.0042A613
0042A669   .  8CA64200      DD EKD2Win.0042A68C
0042A66D   .  00            DB 00                                                      ;  分支 0042A64D 索引表
0042A66E   .  00            DB 00
0042A66F   .  00            DB 00
0042A670   .  07            DB 07
0042A671   .  07            DB 07
0042A672   .  07            DB 07
0042A673   .  07            DB 07
0042A674   .  07            DB 07
0042A675   .  07            DB 07
0042A676   .  07            DB 07
0042A677   .  07            DB 07
0042A678   .  07            DB 07
0042A679   .  07            DB 07
0042A67A   .  07            DB 07
0042A67B   .  07            DB 07
0042A67C   .  07            DB 07
0042A67D   .  07            DB 07
0042A67E   .  07            DB 07
0042A67F   .  01            DB 01
0042A680   .  01            DB 01
0042A681   .  01            DB 01
0042A682   .  02            DB 02
0042A683   .  02            DB 02
0042A684   .  07            DB 07
0042A685   .  07            DB 07
0042A686   .  03            DB 03
0042A687   .  04            DB 04
0042A688   .  05            DB 05
0042A689   .  07            DB 07
0042A68A   .  07            DB 07
0042A68B   .  06            DB 06
0042A68C   >  8B45 F0       MOV EAX,DWORD PTR SS:[EBP-10]                              ;  最终伤害
0042A68F   .  E9 00000000   JMP EKD2Win.0042A694
0042A694   >  5F            POP EDI
0042A695   .  5E            POP ESI
0042A696   .  5B            POP EBX
0042A697   .  C9            LEAVE
0042A698   .  C2 0800       RETN 8

[ 本帖最后由 ctermiii 于 2010-7-18 14:36 编辑 ]
精华帖
顶部
性别:未知-离线 ctermiii


Rank: 5Rank: 5
轩辕春秋年度最佳(游戏人生区)
组别 羽林都尉
级别 破贼校尉
好贴 1
功绩 92
帖子 90
编号 50655
注册 2005-10-7


发表于 2010-7-24 17:54 资料 文集 短消息 看全部作者
按照不增加区段、不占用其他位置的原则

从0x42A5E9~0x42A693这大概150+字节的位置可以重写一下

要给代码留点位置,大概能用的作为数据的区域在80字节;

如果能把表格限制在80字节以内,重写一下就好了,你也会写程序的就不说什么了。

有难度的是,要40个兵种全列在表格里的话,按相克能力1个字节,也要40x40字节;

但如果按照大类来算的话,倒是可以

比如把弓和弓骑、炮车合并一类等等,如果能商定一个都可以接受的原则出来,

缩减为8或者9大类兵种的话,还是可以写的。

合并大类倒也不用担心相克太单调,毕竟还有兵种各自的地形适应性在那里呢,一起做个修改就是了

这种相克和合并大类的数据,每个人看法都不一样,标准难定。





我看了一下,0x4813A0之后位置好像有3000个字节可以用,如果想占用这个地方的话,就不是什么大问题了。
精华帖
顶部
性别:未知-离线 ctermiii


Rank: 5Rank: 5
轩辕春秋年度最佳(游戏人生区)
组别 羽林都尉
级别 破贼校尉
好贴 1
功绩 92
帖子 90
编号 50655
注册 2005-10-7


发表于 2010-7-25 12:07 资料 文集 短消息 看全部作者
这种还算简单..
我不想对原来的布局动太多地方,所以把表格插在代码中间了,程序返回位置所在的代码没有动;
这样前边的几个跳转指令位置不用改,省点麻烦;
但有这个位置:
0x42A68C这个位置被开辟来做兵种大类了
导致前边有个jmp指令:
0042A5AE   . /E9 D9000000   JMP EKD2Win.0042A68C
这个代码od会认不出来;
不过这句代码完全没用上过,所以我虽然给的附件里改了,不改也一样


设定原则是这样:
从0x42A66C开始:
00~27这40个兵种,需要一一给他设定一个大类,编号00~07,一共8大类,默认00

相克系数是0~255直接的任意值,我设定的结果是:
实际伤害=基本伤害x相克系数/100
这样可以有75%,65%这种不是整十的系数存在,设定系数的时候也不用绕弯子了,方便一点
最大是255%,最小0,如果嫌系数范围不够,也可以把100这个数缩小一下。
当然实现方法很多,这里仅仅是一个例子
0x42A62C开始为相克系数表格结构:
每8个一组,分别是第00,第01……第07类克制其他大类的系数;默认00,需要自己设定;
很明显,自己克制自己系数为1,也就是100%,因为我这个例子是除以100的,所以对应设置应该为64H;
如果你改了除数,记得系数也要同步改一下;
藤甲兵22H作为防御方时候单独计算;

例子看附件:

下边是程序:

0042A5E9   .  83F9 22       CMP ECX,22                               ;  是否藤甲兵
0042A5EC   .  75 05         JNZ SHORT EKD2Win_.0042A5F3
0042A5EE   .  2BC0          SUB EAX,EAX
0042A5F0   .  40            INC EAX                                  ;  藤甲兵伤害为1
0042A5F1   .  EB 37         JMP SHORT EKD2Win_.0042A62A
0042A5F3   >  894D D8       MOV DWORD PTR SS:[EBP-28],ECX
0042A5F6   .  8B4D DC       MOV ECX,DWORD PTR SS:[EBP-24]
0042A5F9   .  E8 A2ECFDFF   CALL EKD2Win_.004092A0                   ;  攻击方兵种
0042A5FE   .  2BC9          SUB ECX,ECX
0042A600   .  8AC8          MOV CL,AL
0042A602   .  0FB681 6CA642>MOVZX EAX,BYTE PTR DS:[ECX+42A66C]       ;  攻击方大类
0042A609   .  8B4D D8       MOV ECX,DWORD PTR SS:[EBP-28]
0042A60C   .  0FB689 6CA642>MOVZX ECX,BYTE PTR DS:[ECX+42A66C]       ;  防御方大类
0042A613   .  8D04C8        LEA EAX,DWORD PTR DS:[EAX+ECX*8]         ;  相克系数相对位置,也是选8大类的好处,计算相对位置只3个字节就够了
0042A616   .  0FB680 2CA642>MOVZX EAX,BYTE PTR DS:[EAX+42A62C]       ;  相克系数(0~255),同大类请设64H,可设8个档次
0042A61D   .  8B4D F0       MOV ECX,DWORD PTR SS:[EBP-10]
0042A620   .  F7E9          IMUL ECX
0042A622   .  2BC9          SUB ECX,ECX
0042A624   .  2BD2          SUB EDX,EDX
0042A626   .  B1 64         MOV CL,64                                ;  最终伤害=基本伤害x相克系数/100
0042A628   .  F7F9          IDIV ECX
0042A62A   >  EB 68         JMP SHORT EKD2Win_.0042A694
0042A62C      00            DB 00                                    ;  0大类相克系数
0042A62D      00            DB 00
0042A62E      00            DB 00
0042A62F      00            DB 00
0042A630      00            DB 00
0042A631      00            DB 00
0042A632      00            DB 00
0042A633      00            DB 00
0042A634      00            DB 00                                    ;  1
0042A635      00            DB 00
0042A636      00            DB 00
0042A637      00            DB 00
0042A638      00            DB 00
0042A639      00            DB 00
0042A63A      00            DB 00
0042A63B      00            DB 00
0042A63C      00            DB 00                                    ;  2
0042A63D      00            DB 00
0042A63E      00            DB 00
0042A63F      00            DB 00
0042A640      00            DB 00
0042A641      00            DB 00
0042A642      00            DB 00
0042A643      00            DB 00
0042A644      00            DB 00                                    ;  3
0042A645      00            DB 00
0042A646      00            DB 00
0042A647      00            DB 00
0042A648      00            DB 00
0042A649      00            DB 00
0042A64A      00            DB 00
0042A64B      00            DB 00
0042A64C      00            DB 00                                    ;  4
0042A64D      00            DB 00
0042A64E      00            DB 00
0042A64F      00            DB 00
0042A650      00            DB 00
0042A651      00            DB 00
0042A652      00            DB 00
0042A653      00            DB 00
0042A654      00            DB 00                                    ;  5
0042A655      00            DB 00
0042A656      00            DB 00
0042A657      00            DB 00
0042A658      00            DB 00
0042A659      00            DB 00
0042A65A      00            DB 00
0042A65B      00            DB 00
0042A65C      00            DB 00                                    ;  6
0042A65D      00            DB 00
0042A65E      00            DB 00
0042A65F      00            DB 00
0042A660      00            DB 00
0042A661      00            DB 00
0042A662      00            DB 00
0042A663      00            DB 00
0042A664      00            DB 00                                    ;  7
0042A665      00            DB 00
0042A666      00            DB 00
0042A667      00            DB 00
0042A668      00            DB 00
0042A669      00            DB 00
0042A66A      00            DB 00
0042A66B      00            DB 00
0042A66C      00            DB 00                                    ;  00兵种开始,自定义大类0~7
0042A66D      00            DB 00
0042A66E      00            DB 00
0042A66F      00            DB 00
0042A670      00            DB 00
0042A671      00            DB 00
0042A672      00            DB 00
0042A673      00            DB 00
0042A674      00            DB 00
0042A675      00            DB 00
0042A676      00            DB 00
0042A677      00            DB 00
0042A678      00            DB 00
0042A679      00            DB 00
0042A67A      00            DB 00
0042A67B      00            DB 00
0042A67C      00            DB 00
0042A67D      00            DB 00
0042A67E      00            DB 00
0042A67F      00            DB 00
0042A680      00            DB 00
0042A681      00            DB 00
0042A682      00            DB 00
0042A683      00            DB 00
0042A684      00            DB 00
0042A685      00            DB 00
0042A686      00            DB 00
0042A687      00            DB 00
0042A688      00            DB 00
0042A689      00            DB 00
0042A68A      00            DB 00
0042A68B      00            DB 00
0042A68C      00            DB 00
0042A68D      00            DB 00
0042A68E      00            DB 00
0042A68F      00            DB 00
0042A690      00            DB 00
0042A691      00            DB 00
0042A692      00            DB 00
0042A693      00            DB 00
0042A694   >  5F            POP EDI

[ 本帖最后由 ctermiii 于 2010-7-25 13:52 编辑 ]


附件: EKD2Win.rar (2010-7-25 12:20, 127.11 K)
该附件被下载次数 282
精华帖
顶部
性别:未知-离线 ctermiii


Rank: 5Rank: 5
轩辕春秋年度最佳(游戏人生区)
组别 羽林都尉
级别 破贼校尉
好贴 1
功绩 92
帖子 90
编号 50655
注册 2005-10-7


发表于 2010-7-25 12:27 资料 文集 短消息 看全部作者
是这样的:
1、前边计算出基础伤害Abase;
2、取得防御方等级Flevel,然后取得0~FLevel-1的随机值Frnd1;
3、取得攻击方等级Glevel,然后取得0~Glelev-1的随机值Grnd1;
4、比较Frnd1与Grnd1的大小;
5、1如果Frnd1<Grnd1,或者产生了全力一击;
那么伤害会随机增加0~Glevel-1之间的随机值Grnd2,结果为Abase=Abase+Grnd2
5、2如果Frnd1>=Grnd1,
那么伤害随机减少0~Flevel-1的随机值Frnd2,如果伤害为1,减少了2,那只能取0和1-2的最大值,即保证伤害不能为负数,结果为Abase=Max(Abase-Frnd2,0)
6、确认防御方是我军(15个部队,不知道是否包括援军,游戏我实在没玩过)还是敌军;
如果是我军,那个会去确认游戏难度;
6、1难度为初级的话,我军受伤害为Abase=Abasex80%;
6、2难度为高级的话,我军受伤害为Abase=Abasex120%;
注:没有中级难度计算,那明显伤害为Abase=Abasex100%;
7、取得防御方当前耐久力,如果最终的ABase>=耐久力的话,伤害Abase=耐久力;
如果伤害<耐久力的哈,Abase不变,这个是为了防止打出比当前耐久力还大的数;

[ 本帖最后由 ctermiii 于 2010-7-25 13:21 编辑 ]
精华帖
顶部
性别:未知-离线 ctermiii


Rank: 5Rank: 5
轩辕春秋年度最佳(游戏人生区)
组别 羽林都尉
级别 破贼校尉
好贴 1
功绩 92
帖子 90
编号 50655
注册 2005-10-7


发表于 2010-7-27 13:06 资料 文集 短消息 看全部作者
其实我是挺喜欢屠电脑的,比如可以改造一下如果是我军,伤害永远为0,如果是敌人,次次连击、全力一击。
如果每战的敌人出来,兵种是剧本定死的,不会应为上一战的影响而变化的话,就好玩了

要增加游戏难度的话,可以改成如果是敌军,发生了致命一击或者连击或者某种条件吧,那么他是一个很优秀的敌人啊,可以给他增加一个加强攻或者防或者攻防的buffer,好好保护起来

如果他下次出现,兵种不变的话,可以考虑如果他表现优秀,给他兵种随机升级为一种更强大的,就好玩了。
精华帖
顶部

正在浏览此帖的会员 - 共 1 人在线




当前时区 GMT+8, 现在时间是 2025-7-15 13:39
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

Powered by Discuz! 5.0.0 2001-2006 Comsenz Inc.
Processed in 0.021809 second(s), 11 queries , Gzip enabled

清除 Cookies - 联系我们 - 轩辕春秋 - Archiver - WAP