注册 | 登录

游侠NETSHOW论坛





查看: 6660|回复: 25
打印 上一主题 下一主题

一些关于特技与部队能力计算的修改 [复制链接]

帖子
363
精华
5
积分
2339
金钱
5267
荣誉
114
人气
173
评议
0
跳转到指定楼层
楼主
发表于 2008-11-28 18:46:53 |只看该作者 |倒序浏览
内存地址对应繁中pk1.1版, 安妮罗杰大指出的错误都已改正

0050C654: 原值5Ch改为44h, 则暗器与伪逃可无限使用

射程与强弩
005A3B80: 射程(24)(井阑投石射程加1)
005A3B85: 把原值58h改成60h, 则上述效果变成势力技术
005A3B8A: 把原值FFh44h改为D1h64h, 射程从原先的加1变为乘以2
(同时影响强弩对弩兵战法的射程计算)
PS. 安妮罗杰大指出, 强弩对弩兵的普通射击增加射程
005A38CB: 改成8Dh41h08h89h47h04h, 射程变成加8

藤甲
005AE566: 藤甲(31)(通过着火格伤害加倍)
005AE56B: 把原值58h改成60h, 则上述效果变成势力技术
005AE573: 把原值D1hE0h改为33hC0h, 则伤害加倍变成伤害归零.

005B1283: 藤甲(31)(火计火矢落雷引火对据点士兵与部队士兵伤害加倍)
005B1288: 把原值58h改成60h, 则上述效果变成势力技术
005B1290: 把原值D1hE0h改为33hC0h, 则伤害加倍变成伤害归零.

005B169B: 藤甲(31)(火陷阱对所在据点耐久损伤与部队士兵伤害加倍)
005B16A0: 把原值58h改成60h, 则上述效果变成势力技术
005B16AC: 把原值D1hE0h改为33hC0h, 则伤害加倍变成伤害归零.

005B0407: 藤甲(31)(对直接/间接的普攻与战法(包括反震)伤害减半)
005B040C: 把原值58h改成60h, 则上述效果变成势力技术
005B0416: 把原值D1hF8h改为33hC0h, 则伤害减半变成伤害归零

005B0C0C: 藤甲(31) (直接/间接支援攻击伤害减半)
005B0C11: 把原值58h改成60h, 则上述效果变成势力技术
005B0C1C: 把原值D1hF8h改为33hC0h, 则伤害减半变成伤害归零

这样就可以把藤甲变成完全防御伤害的势力技术.

倾国
005AF47A: 倾国(69)
005AF47D: 把原值58h改成60h, 则效果变成势力技术
005AF499: 把原值13h改成00h, 则无论性别都会有效.
005AF49E: 把原值03hC0h改成B0h64h, 则成功率必定是100%.

这样就可以把倾国变成无论性别, 计略成功率必定100%的势力技术.

安妮罗杰大在此帖提出了取消伪逃15回合限制的方法,
http://game.ali213.net/thread-2354483-1-1.html
这似乎是使得判断回合限制的信息被跳过. 另一方法是自定该限制回合数据.
00507D9D: 限制回合(15), 改为0就等于没有限制.

计算部队能力
副将能力超过主将时, 超出量的1/4会增加到主将的能力后再计算部队能力.
00495B65: 把原值C1hF8h02h改为90h90h90h, 就可取消该1/4倍,
等于是用部队中最高的武将能力来计算, 与革新相同.
副将与主将有亲爱武将关系的话, 该倍率是1/2,
00495B79: 把原值D1hF8h改为90h90h, 就可取消该1/2倍

PS. 关于计算部队能力, 安妮罗杰大指出的完美修改
00495B09 0x76
00495B1B 0x64
00495B26 0xEB
00495B27 0X58
修改以上4字节后 即取消全部关系

部队建设力 = 最高政治 * (2/3) + 50
00496A49: 最高政治计算建设力的倍率(0079CC84=0.66666)
00496A4F: 建设力附加值(0079CC80=50)
004969F2: 运输队的防御力及建设力降低倍率(00795AE0=0.33333)
个人认为运输队的建设力应该比一般战斗部队更高才合理,
此倍率指标应该改为1以上

建设的耐久增加上限
005A354D: (00779BA8=0.2)
005A359B: 部队士兵量对耐久增加的计算倍率(00779BA8=0.2)
005A3572: (0077AA58=0.125)
005A35A7: 部队建设力对耐久增加的相关倍率(0077AA58=0.125)
005A3568: 耐久增加上限(405)
005A35C3: 耐久增加超过上限时的耐久增加量(405)
005A35C9: 设置建筑物时, 耐久增加的下限(1)
005A35CD: 耐久增加量低于下限时的保底值(1)

筑城
005A35D4: 筑城(77)
005A35D9: 把原值58h改成60h, 则上述效果变成势力技术

005D9A27: 锻链能力所需时间(3)
005DA840: 提高适性所需时间(3)
005DB067: 学习特技所需时间(3)
觉得花费30天太久的话可改为1 = 10天

[ 本帖最后由 sergi 于 2008-12-1 04:01 编辑 ]

使用道具 举报

Annerose von Grünewald
游侠剑阁工作组【问答】
熾天使
黑暗执政官
2009.7最佳问答

活跃勋章荣誉勋章大头像勋章2012年度优秀版主勋章剑阁工作组资深组员勋章白金会员勋章

帖子
15144
精华
7
积分
13894
金钱
26919
荣誉
492
人气
10
评议
0

沙发
发表于 2008-11-28 19:29:34 |只看该作者
运输队的建设力应该比一般战斗部队更高才合理
囧RZ...那编制建设还有什么存在的意义......

使用道具 举报

Annerose von Grünewald
游侠剑阁工作组【问答】
熾天使
黑暗执政官
2009.7最佳问答

活跃勋章荣誉勋章大头像勋章2012年度优秀版主勋章剑阁工作组资深组员勋章白金会员勋章

帖子
15144
精华
7
积分
13894
金钱
26919
荣誉
492
人气
10
评议
0

板凳
发表于 2008-11-28 19:36:23 |只看该作者
我提出的取消伪逃15回合限制的方法确实是跳过判断回合限制的代码
这样做在把握高的情况 可以避免边界震荡 是比修改数值更保险的办法
你NOP 倾国 不是也是一样是NOP J语句么

BTW 你的倾国 NOP错了 5AF480 是不能NOP的
而且这样浪费了很多运行周期 不如直接跳到F49A来的合理

BTW AG 你的藤甲有详细测试过么
伤害函数原本的值域貌似是MIN=1
你这样做 有出错的可能哦
而且你想置0 最好用33C0 29C0不安全

[ 本帖最后由 安妮罗杰 于 2008-11-28 20:26 编辑 ]

使用道具 举报

Annerose von Grünewald
游侠剑阁工作组【问答】
熾天使
黑暗执政官
2009.7最佳问答

活跃勋章荣誉勋章大头像勋章2012年度优秀版主勋章剑阁工作组资深组员勋章白金会员勋章

帖子
15144
精华
7
积分
13894
金钱
26919
荣誉
492
人气
10
评议
0

地板
发表于 2008-11-28 20:16:33 |只看该作者
原帖由 sergi 于 2008-11-28 18:46 发表
内存地址对应繁中pk1.1版
计算部队能力
副将能力超过主将时, 超出量的1/4会增加到主将的能力后再计算部队能力.
00495B65: 把原值C1hF8h02h改为90h90h90h, 就可取消该1/4倍,
等于是用部队中最高的武将能力来计算, 与革新相同.
副将与主将有亲爱武将关系的话, 该倍率是1/2,
00495B79: 把原值D1hF8h改为90h90h, 就可取消该1/2倍
血缘关系的计算倍率是1/3, 不过我找不出内存信息, 有待高人出手


1/3就在旁边 是5B28到5B36的部分 不过3不是2进制整数 计算代码你可能看不懂
关于这个项目我建议
00495B09 0x76
00495B1B 0x64
00495B26 0xEB
00495B27 0X58
修改以上4字节后 即取消全部关系

[ 本帖最后由 安妮罗杰 于 2008-11-28 21:08 编辑 ]

使用道具 举报

帖子
27
精华
0
积分
14
金钱
64
荣誉
0
人气
0
评议
0
5#
发表于 2008-11-28 20:18:23 |只看该作者
专业性好强,虽然看不太懂,还是要支持

使用道具 举报

帖子
363
精华
5
积分
2339
金钱
5267
荣誉
114
人气
173
评议
0
6#
发表于 2008-11-28 20:35:24 |只看该作者
安大的水平太高, 边界震荡跟运作周期在下完全没学过…

关于运输队的修改, 我是想使其能有些独到之处, 而不是只能运兵或施放计略.
至于倾国, 我是因为看到cmp指令, 猜测这就是用来比较性别, 把cmp指令
改为nop后也测试成功, 又尝试把jump指令nop, 以及cmp, jump一起nop,
游戏里的表现都一样, 至于原理就不明白了.

005AF49E开始的shl与cmp, 也因为imul指令占3byte, 只能硬把cmp改为nop,
不知道会不会有不良影响.

最后还想请教, 我试用了OD, 但是无法attach到运行中的san11pk程序,
想问一下安大如何在这种状况下仍然能运用OD呢?

PS. 藤甲我测过几次, 伤害的确消失了, 尚未发生过错误, 不过也不敢保证…

[ 本帖最后由 sergi 于 2008-11-28 20:46 编辑 ]

使用道具 举报

Annerose von Grünewald
游侠剑阁工作组【问答】
熾天使
黑暗执政官
2009.7最佳问答

活跃勋章荣誉勋章大头像勋章2012年度优秀版主勋章剑阁工作组资深组员勋章白金会员勋章

帖子
15144
精华
7
积分
13894
金钱
26919
荣誉
492
人气
10
评议
0

7#
发表于 2008-11-28 20:56:18 |只看该作者
5AF480及其之前的函数一同 效果是判断队伍是否有倾国的
这个位置被你NOP掉了的结果是 全世界的人都有倾国效果

我也无法attach到san11pk调试 因为我也搞不定SD4.6
我是截了内存镜像 用OD看镜像的 代码起什么作用完全靠经验(TAMIAODE~是不是太不谦虚了点...囧 )
动态调试是没法的

使用道具 举报

Annerose von Grünewald
游侠剑阁工作组【问答】
熾天使
黑暗执政官
2009.7最佳问答

活跃勋章荣誉勋章大头像勋章2012年度优秀版主勋章剑阁工作组资深组员勋章白金会员勋章

帖子
15144
精华
7
积分
13894
金钱
26919
荣誉
492
人气
10
评议
0

8#
发表于 2008-11-28 21:02:26 |只看该作者
005AF49E 你这样肯定是不安全的 逻辑边界判断的CMP被你NOP掉了......
你既然想要肯定100% 那么直接B0 64就好了
明明2个字节够了 跑去用什么IMUL?

SORRY 编辑一下
好彩的是这个函数里竟然有2次逻辑边界判断 你的过界值被第2次判断砍掉了 但是其实很少会有这样的情况的
所以那个CMP砍掉应该不会出错 F480的地方修改去掉 应该就算是能运行了 那就当我上面没说过吧

[ 本帖最后由 安妮罗杰 于 2008-11-29 03:15 编辑 ]

使用道具 举报

帖子
363
精华
5
积分
2339
金钱
5267
荣誉
114
人气
173
评议
0
9#
发表于 2008-11-28 21:22:55 |只看该作者

回复 #7 安妮罗杰 的帖子

请问截内存镜像要用什么工具呢?
还有就是在无法动态调试的情况下, 要如何才能追踪到相关代码所在的内存段落呢?
比如伪逃回合数判断所在的内存段落00507CF0到00507DB4之间,
要如何才能知道代码就在这一段落呢? 毕竟在代码的茫茫大海中,
如果不知道确切的内存段落, 就更谈不上细部判读代码了.

PS. 8楼提出的B0h64h, 我用CE得到的意义是mov al,64
原始值03hC0h则是add eax, eax, 寄存器的名称不同, 真能行得通吗?
能否解说其中奥妙?

[ 本帖最后由 sergi 于 2008-11-28 21:41 编辑 ]

使用道具 举报

Annerose von Grünewald
游侠剑阁工作组【问答】
熾天使
黑暗执政官
2009.7最佳问答

活跃勋章荣誉勋章大头像勋章2012年度优秀版主勋章剑阁工作组资深组员勋章白金会员勋章

帖子
15144
精华
7
积分
13894
金钱
26919
荣誉
492
人气
10
评议
0

10#
发表于 2008-11-28 21:42:46 |只看该作者
我直接用WINHEX截的

靠猜  靠看  靠推  靠运气
比如伪逃回合数判断所在的内存段落
已知是某个黄某升的家伙伪逃有加成
猜测可能可以找到相关代码
这就是猜
那么搜索找黄某升的代码
读搜索结果的上下文
在其中找出伪逃的那一个  并且读上文后确认是威力加成
这是看
然后推理 伪逃威力 计算应该被伪逃流程函数调用
看所有调用这个计算的位置 在其中找到流程函数
再在其中寻找各种限制代码 或者限制函数 比如需要弓 判断回合 等等

最后呢是个坏消息 就是之前所说的每一个事情 都有很大的机会失败
比如说流程函数 如果流程函数不是死调用
而是CALL EBX+0xXXXXXX之类的 没有调试根本找不到
这就是靠运气

AL和EAX指的是同一个寄存器
AL表示8位操作 EAX表示32位操作

[ 本帖最后由 安妮罗杰 于 2008-11-29 02:19 编辑 ]

使用道具 举报

水军
白马座骑 骑士

帖子
349
精华
0
积分
205
金钱
874
荣誉
3
人气
0
评议
0
11#
发表于 2008-11-29 01:14:02 |只看该作者
藤甲的我做过试验,没问题的,配火神一样无视火

我的直接指向别处了,若给火神,则火神会被搞死

[ 本帖最后由 coolvast 于 2008-11-29 03:30 编辑 ]

使用道具 举报

Annerose von Grünewald
游侠剑阁工作组【问答】
熾天使
黑暗执政官
2009.7最佳问答

活跃勋章荣誉勋章大头像勋章2012年度优秀版主勋章剑阁工作组资深组员勋章白金会员勋章

帖子
15144
精华
7
积分
13894
金钱
26919
荣誉
492
人气
10
评议
0

12#
发表于 2008-11-29 01:29:28 |只看该作者

回复 #11 coolvast 的帖子

不知你在说些什么
这段代码根本没有指针

使用道具 举报

游侠剑阁工作组【制作】
AC米兰 最佳前腰
禦林軍

剑阁工作组资深组员勋章

帖子
1520
精华
4
积分
2111
金钱
4757
荣誉
55
人气
12
评议
0

13#
发表于 2008-11-29 01:53:29 |只看该作者
对于编程系列以前自学过几天的c  前面的还好  后面到了指针那块  我头都是大的  
如今七窍已然打通六处   只有纯支持观赏各位的成果了

yy一下,几时输出能上6,7位数就好了:)

使用道具 举报

水军
白马座骑 骑士

帖子
349
精华
0
积分
205
金钱
874
荣誉
3
人气
0
评议
0
14#
发表于 2008-11-29 03:32:51 |只看该作者

回复 #12 安妮罗杰 的帖子

不是程序中的指针,这块,我记得我写出来就编辑掉了
没想到游侠抽风,居然还是被看到了、

使用道具 举报

帖子
363
精华
5
积分
2339
金钱
5267
荣誉
114
人气
173
评议
0
15#
发表于 2008-11-30 21:52:05 |只看该作者
增加了两项修改, 目前测试过没有问题.
顺便强力推荐keyneslin介绍的CE. 按照k大的指点,
在CE的settings-->extra之下, 点选use kernelmode debugger options when possible,
就可以追踪出对某一内存地址作写入或读取的代码, 而且attach时会有信息显示
已经有一debugger attach到程序, 可以选择override (似乎只适用于winxp+),
然后toggle breakpoint与break and trace instructions都可以使用了.
无限使用暗器与伪逃就是利用追踪功能找到的, 对安妮罗杰大也许能发挥更大作用?

[ 本帖最后由 sergi 于 2008-12-1 00:50 编辑 ]
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

Annerose von Grünewald
游侠剑阁工作组【问答】
熾天使
黑暗执政官
2009.7最佳问答

活跃勋章荣誉勋章大头像勋章2012年度优秀版主勋章剑阁工作组资深组员勋章白金会员勋章

帖子
15144
精华
7
积分
13894
金钱
26919
荣誉
492
人气
10
评议
0

16#
发表于 2008-12-1 01:45:12 |只看该作者
偶的#4貌似被无视了

射程有4的上限 *2=6跟+1=4结果都一样是4射程......

#15的楼的要求贴详细教程...嘿嘿嘿

使用道具 举报

Annerose von Grünewald
游侠剑阁工作组【问答】
熾天使
黑暗执政官
2009.7最佳问答

活跃勋章荣誉勋章大头像勋章2012年度优秀版主勋章剑阁工作组资深组员勋章白金会员勋章

帖子
15144
精华
7
积分
13894
金钱
26919
荣誉
492
人气
10
评议
0

17#
发表于 2008-12-1 01:51:45 |只看该作者
强弩的普通攻击射程
5A38CB修改6字节8D 41 08 89 47 04
第3位的08是+08的意思 不过没用 反正最后最大是4

顺便再次抗议无视偶

[ 本帖最后由 安妮罗杰 于 2008-12-1 01:53 编辑 ]

使用道具 举报

帖子
363
精华
5
积分
2339
金钱
5267
荣誉
114
人气
173
评议
0
18#
发表于 2008-12-1 04:31:53 |只看该作者

回复 #17 安妮罗杰 的帖子

感谢安大的指教,已经编辑到1楼.
至于CE的设定, 其实很简短, 如同15楼的步骤(附图数张).
中间会有几次对话窗, 我全都选OK(反正也看不明白…)
重点是追踪到的代码对我这外行人而言根本就是天书…
话说我一度以为只要知道兵力(体力)的内存地址, 就可以反向追踪出
计算伤害量的所有代码, 不过trace得到的好像是breakpoint之后的代码
与寄存器数据, 跟我想像的美好情形不同…
希望安大能更深入的运用CE的潜力, keyneslin兄应该对CE更加了解, 互相交流当有补裨.
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

使用道具 举报

帖子
274
精华
0
积分
137
金钱
3304
荣誉
0
人气
0
评议
0
19#
发表于 2009-10-31 22:51:52 |只看该作者
原帖由 安妮罗杰 于 2008-12-1 01:45 发表
偶的#4貌似被无视了
射程有4的上限 *2=6跟+1=4结果都一样是4射程......

请教安大,能否找到这种上限的数值地址或指令地址?
本人对部队行动力不满意,早期电脑的威胁较缓,晚期进攻的周期拖长。邻城武将10天可到,部队要40-60天不合理,部队比武将个人慢一倍比较合适,邻城相距500-1000里,部队日行30-50里,20天内应该能到。(白天5个时辰,步行行军2个时辰40里,伐木建寨2个时辰,吃喝1个时辰)
另外水军不用安营扎寨,可借风力吃喝不必停航,行动只会比陆军快。蕪湖到夏口1千里,现代2天,古代10天应当能到,最多20天,游戏中要80天以上。
拟把陆军提速成2-3倍,水军4-5倍,敌军1-2回合就能攻到城下,类似现代的战争预警BUG再不起作用,作战方式和内政策略都要大变才行,ZOC和设施的作用更大,有可能颠覆新剧本的效果。
问题在于行动也有上限10格,找不到限制的地址就改不了,安大能否帮忙找找?如能找到就感激不尽了!

使用道具 举报

Annerose von Grünewald
游侠剑阁工作组【问答】
熾天使
黑暗执政官
2009.7最佳问答

活跃勋章荣誉勋章大头像勋章2012年度优秀版主勋章剑阁工作组资深组员勋章白金会员勋章

帖子
15144
精华
7
积分
13894
金钱
26919
荣誉
492
人气
10
评议
0

20#
发表于 2009-10-31 23:31:58 |只看该作者
攻击的4格不是数值限制 而是本身没有提供4以上的动作

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

手机版|Archiver|游侠NETSHOW论坛 ( 苏ICP备2023007791号 )

GMT+8, 2025-8-26 11:59 , Processed in 0.365342 second(s), 12 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

分享到