游侠NETSHOW论坛

标题: 【原创】又一项能改的,武将友好度修改 [打印本页]

作者: lingyer    时间: 2006-3-14 01:22:25     标题: 【原创】又一项能改的,武将友好度修改

折腾了一个晚上,总算是找到武将友好度的存储位置和方式了。

在存档文件save.dat(此文件在“我的文档”\Koei\Zhen SanGuoWuShuang 3 Hyper\Savedata\下,修改前记得备份)中
地址范围00816-00b9b,共903字节
目前已知的友好度代码:04 E,06 D,08 C,0A-0B B,0C A,0F S
存储方式比较奇怪,是按行优先存储的直角三角矩阵。
具体是这样的:

每个武将和自身的友好度永远是08。

自定义武将没有友好度参数(至少我是没有发现,要是哪位大侠手上有自定义武将能放激无双的存档,还请给我发一个,我好继续琢磨)。

现在建立一张42*42的武将关系表,表的横栏和侧栏都按武将代码的升序排列。

显然此表是以左上-右下这条对角线对称的,所以消去此表左下部重复的数据,得到一个顶边42,高42的逆直角三角矩阵。

以行优先方式将此矩阵转化为一维数组存储。

这样就得到这903个字节了

说起来好像很复杂的样子,实际上并不麻烦。有搞计算机的人应该很容易理解,实际上就是《数据结构》教程里稀疏矩阵存储例程的算法。

如果还不明白就看一下华彩1.06里“义勇武将和仇敌武将”给出的友好度列表吧,那里面只列出了同势力武将,并且省略了武将和自己的友好度。按那种列表方式把所有的武将都列在一张大表上,然后按行抄下来,就是存档文件中的储存方式了。
作者: 斯派克-X    时间: 2006-3-14 01:32:49

这也搞出来了。支持一下。

具体效果怎样?
作者: lingyer    时间: 2006-3-14 01:34:13

说实话,这个东西改起来实在很麻烦的说,tanjiunnya大要是有空的话给做个修改器吧。

顺便请教一下,护卫队属性里面0055E和00055F是不是护卫队的S攻和S抗啊?感觉很像却又无法验证,还请高人给指点一二。
作者: lingyer    时间: 2006-3-14 01:38:37

最初由 斯派克-X 发表
[B]这也搞出来了。支持一下。

具体效果怎样? [/B]

汗。。。这个我没有测试,903个字节的大表,光算校验码就要算到死啊。期待斑竹出修改器中。。。

我只能说,这个算法绝对是正确的,因为我验证了几乎所有的蜀国武将,一部分魏国武将和吴国的美洲狼,全都对得上。
作者: bkvm    时间: 2006-3-14 01:38:39

先顶一个再说。【支持】 【支持】
作者: bkvm    时间: 2006-3-14 01:44:55

MS,没有看得太明白。LZ能否再说详细点。。。【汗水】  



还有,LZ是怎么验证这个效果的呢。。
作者: bkvm    时间: 2006-3-14 03:09:41

恩,刚刚试了一下,把00817改为00,赵云选黄巾击退战,三次进游戏关羽都提出单挑了。改为0F则四次都不提出单挑,后来在大地图把他打死之后过关再看,00817已经降低为0E了。。。。【开心】 【开心】 【开心】
作者: bkvm    时间: 2006-3-14 03:09:49

恩,刚刚试了一下,把00817改为00,赵云选黄巾击退战,三次进游戏关羽都提出单挑了。改为0F则四次都不提出单挑,后来在大地图把他打死之后过关再看,00817已经降低为0E了。。。。【开心】 【开心】 【开心】
作者: phoenixst    时间: 2006-3-14 08:23:23

……矩阵。。。一维数组。。。
MS我还记得那么一点。。。
作者: udis    时间: 2006-3-14 08:33:01

好复杂.............还要校验..............某数学不行的人漂过了
作者: lingyer    时间: 2006-3-14 09:25:06

再换种说法吧,这903个字节其实是这样排的:
赵云*赵云,赵云*关羽,赵云*张飞... ...赵云*月英,
关羽*关羽,关羽*张飞... ...,关羽*月英,
张飞*张飞,张飞*夏侯敦... ... ... ... 曹仁*月英,
周泰*周泰,周泰*月英,
月英*月英

这样是不是能好理解一些呢?

看来我的表述确实成问题啊,高中语文挂红灯的恶果。。。。。。T_T

校验码只要是用UE手工修改都要自己算的说,只改一项两项还好说,要是几百个字节改下来,计算校验码绝对会死人的。

另外,我用的是繁体中文Hyper版,日版的改法应该也一样,只不过存档文件变成了ShinSangokumusou3.dat
作者: lingyer    时间: 2006-3-14 16:26:48

自己顶起来,有没有人用原创武将打出义勇武将、仇敌武将登场或者放出激・无双的?有的话回个帖啊
作者: 江浦淳    时间: 2006-3-14 20:26:21

如果是自创武将的话,我倒打出过义勇武将。一次是姜维,一次是关羽。^_^
作者: bkvm    时间: 2006-3-15 18:57:00

顶起来,不知道LZ最近两天有没有新的发现。。【支持】 【支持】
作者: kimdy    时间: 2006-3-15 19:04:16

最初由 phoenixst 发表
[B]……矩阵。。。一维数组。。。
MS我还记得那么一点。。。 [/B]

是二维吧。。。。数学忘了。。。。。
支持一下LZ的研究。。。。。
作者: lingyer    时间: 2006-3-15 19:50:15

友好度方面暂时没有新发现,目前只是怀疑000006c5~D7这一段里面存在新武将的友好度数据,正在试验中。

昨天分析存档文件倒是获得了一些意外的收获:

音乐鉴赏全开
000088-00008D  6个字节共48个二进制位分别对应42段音乐,其中00008D的最高6位没有使用。即要使动画全开,应置为FF FF FF FF FF 03

过场结局ENDING动画全开
000090-000093 4个字节共32个二进制位分别对应30段动画,其中000093的最高2位没有使用。即要使动画全开,应置为FF FF FF 3F

000094-000097 4个字节共32个二进制位分别对应32种结局,从低位到高位分别为魏传、吴传、蜀传、董卓传、吕布传、黄巾传、南蛮传。要使结局动画全开,应置为FF FF FF FF

自由模式中全关卡开启:
0000ABC8-0000ABD2 11个字节共88个二进制位分别对应全部89个关卡中的前88个,最后一个关卡麦城之战使用0000ABD3的最低位。关卡序号见附表。


序号            名称                代码
1        夷陵之战吴                00
2        夷陵之战蜀                01
3        荆州攻略战                02
4        荆州镇压战                03
5        街亭之战魏                04
6        街亭之战蜀                05
7        五丈原之战魏                06
8        五丈原之战蜀                07
9        天水之战                08
10        合肥之战魏                09
11        合肥之战吴                0A
12        石亭之战魏                0B
13        石亭之战吴                0C
14        孙坚讨伐战董                0D
15        孙坚讨伐战吕                0E
16        孙坚讨伐战袁                0F
17        孙坚讨伐战黄                10
18        二乔夺还战                11
19        定军山之战魏                12
20        定军山之战蜀                13
21        汉中防御战                14
22        黄巾歼灭战魏                15
23        黄巾歼灭战吴                16
24        黄巾歼灭战蜀                17
25        官渡之战魏                18
26        官渡之战袁                19
27        曹操讨伐战董                1A
28        曹操讨伐战吕                1B
29        曹操讨伐战黄                1C
30        黄巾寨攻防战讨伐        1D
31        黄巾寨攻防战黄巾        1E
32        翼洲之战                1F
33        黄巾之乱讨伐                20
34        黄巾之乱黄巾                21
35        翼洲防卫战                22
36        关羽千里行魏                23
37        关羽千里行蜀                24
38        许昌之战吴                25
39        许昌之战蜀                26
40        许昌之战南                27
41        汜水关之战联合                28
42        汜水关之战董                29
43        建业之战魏                2A
44        建业之战蜀                2B
45        建业之战南                2C
46        江东平定战                2D
47        吴郡攻略战                2E
48        玉玺争夺战                2F
49        虎牢关之战联合                30
50        虎牢关之战董                31
51        潼关之战魏                32
52        潼关之战蜀                33
53        下邳之战魏                34
54        下邳之战吕                35
55        黄巾贼击退战讨伐        36
56        黄巾贼击退战黄巾        37
57        刘备讨伐战董                38
58        刘备讨伐战吕                39
59        刘备讨伐战袁                3A
60        刘备讨伐战黄                3B
61        吕布反攻战                3C
62        成都压制战                3D
63        成都之战魏                3E
64        成都之战吴                3F
65        成都之战南                40
66        洛城之战                41
67        夏口之战                42
68        赤壁之战魏                43
69        赤壁之战吴                44
70        赤壁之战蜀                45
71        长江防卫战                46
72        樊城争斗战魏                47
73        樊城争斗战吴                48
74        樊城之战                49
75        刘表奇袭战                4A
76        博望坡之战魏                4B
77        博望坡之战蜀                4C
78        汝南之战                4D
79        宛城之战                4E
80        吕布之乱董                4F
81        吕布之乱吕                50
82        南蛮平定战吴                51
83        南蛮平定战蜀                52
84        南蛮平定战南                53
85        南蛮防御战                54
86        长坂之战魏                55
87        长坂之战蜀                56
88        南郡之战                57
89        麦城之战                58
作者: lingyer    时间: 2006-3-15 19:57:16

顺便说一下
新武将属性里面从06AA到06AD这四个4B已经确定为人物的弓攻、弓防、马攻、马防,具体是这样的:

000006AA 弓攻

000006AB 弓防

000006AC 马攻

000006AD 马防


地址000006AF(在人物速度和跳跃高度之间那个位置)的数值也搞清楚了,是防御中人物的移动速度,最大FF

目前存档文件中,新武将属性里面还有27个字节没搞清楚。

史实武将属性里还有3个字节没搞清楚。

人物属性部分已经接近完美破译。
作者: bkvm    时间: 2006-3-15 20:03:37

最初由 lingyer 发表
[B]顺便说一下
新武将属性里面从06AA到06AD这四个4B已经确定为人物的弓攻、弓防、马攻、马防,具体是这样的:

000006AA 弓攻

000006AB 弓防

000006AC 马攻

000006AD 马防


地址000006AF(在人物速度和... [/B]



我最想要的是史实武将的弓攻、弓防、马攻、马防。。。【谢谢】 【支持】
作者: lingyer    时间: 2006-3-15 20:13:26

最初由 bkvm 发表
[B]我最想要的是史实武将的弓攻、弓防、马攻、马防。。。【谢谢】 【支持】 [/B]

这个肯定不会在存档文件里。我目前玩的是繁体中文版,至少在彻底搞明白存档文件之前,我试绝对不会去动那个1G多的超大文件的。【汗水】

所以。。。。抱歉啦
作者: bbsabcd123    时间: 2006-3-15 20:24:29

不是MS不懂了,是完全不懂,但是~~这帖不能沉!!【支持】 【支持】
作者: tanjiunnya    时间: 2006-3-16 09:43:58

强!!!没有想到这个也给你弄出来了!!过几天,我就有空闲研究了!!!谢谢!!
作者: tanjiunnya    时间: 2006-3-16 09:50:59

这个武将友好度的 地址范围00816-00b9b,共903字节
是属于每个武将还是目前使用的?可不可以给出更加详细的?
作者: lingyer    时间: 2006-3-16 12:11:12

最初由 tanjiunnya 发表
[B]这个武将友好度的 地址范围00816-00b9b,共903字节
是属于每个武将还是目前使用的?可不可以给出更加详细的? [/B]

353的武将友好度就这一个表,任意两名史实武将的友好度都在里面了。

不知道 tanjiunnya 大看没看过清华大学出版社出的“数据结构”这本教材。353的武将友好度表就是按其5.3.1节里给出的算法进行压缩存储的。只不过教材里存的是下三角矩阵,353用的是上三角矩阵而已。

期待 tanjiunnya 大的新版修改器能加入这些内容【支持】
作者: tanjiunnya    时间: 2006-3-16 12:26:54

你可不可以给我一个Excel 制作的表格?(42 * 42 武将的表格) 这样子,我会比较容易写出修改器。数据结构没有看过。不过,你做的出来给我这个42*42表格,修改器绝对没有问题。最好加上前面几个修改地址给我参考。
作者: windsome    时间: 2006-3-16 12:39:04

其实就像是Macross的那个武将关系表一样,只不过是做得大了点而已。这就容易理解了吧?
作者: bbs888    时间: 2006-3-16 12:46:56

【汗水】 什么都看不懂的人飘过.................谢谢LZ 这样修改器又有新内容了 呵呵 可是 游戏很老了 再玩没什么动力了
作者: tanjiunnya    时间: 2006-3-16 12:53:13

最初由 lingyer 发表
[B]这个肯定不会在存档文件里。我目前玩的是繁体中文版,至少在彻底搞明白存档文件之前,我试绝对不会去动那个1G多的超大文件的。【汗水】

所以。。。。抱歉啦 [/B]


我怀疑这些数据都保存在每个战役的关卡设定档案。当然,S攻防也是一样。只有自创的会保存在存档。
作者: lingyer    时间: 2006-3-16 18:12:17

最初由 tanjiunnya 发表
[B]我怀疑这些数据都保存在每个战役的关卡设定档案。当然,S攻防也是一样。只有自创的会保存在存档。 [/B]

比较怀疑这个说法。因为就我目前的经验来看,人物的弓攻、弓防、马攻、马防还有S攻防似乎都是固定不变的。
如新建武将的弓攻固定为4B(十进制75),应该是指其弓箭的攻击力为普通攻击的75%。

这些数据不光是电脑要用,玩家使用史实武将的时候系统也要调用这些数据。在每关里的设定档案里都存储全部42名史实武将再加上大众脸的这些参数,我认为似乎不是很合理。个人认为比较可能的情况是单独存在一个设定文件,里面是史实武将和大众脸的全部初始数据,存储格式很可能和自定义武将的存储格式类似。
作者: lingyer    时间: 2006-3-16 19:15:03

最初由 tanjiunnya 发表
[B]你可不可以给我一个Excel 制作的表格?(42 * 42 武将的表格) 这样子,我会比较容易写出修改器。数据结构没有看过。不过,你做的出来给我这个42*42表格,修改器绝对没有问题。最好加上前面几个修改地址给我参考。 [/B]

你要的表格。
表格的内容就是其“横坐标对应武将”与“纵坐标对应武将”的友好度地址。估计你一看明白了,压缩格式光靠文字描述好像很麻烦的样子,实际上算法简单的很。
作者: shaowen    时间: 2006-3-16 20:17:03

最初由 lingyer 发表
[B]顺便说一下
新武将属性里面从06AA到06AD这四个4B已经确定为人物的弓攻、弓防、马攻、马防,具体是这样的:

000006AA 弓攻

000006AB 弓防

000006AC 马攻

000006AD 马防


地址000006AF(在人物速度和... [/B]



强帖【支持】
弓攻   弓防   骑攻  骑防都出来了
周泰应该可以改成马超的S级骑攻  骑防能力了
加了LV20羌族角,骑士铠不知会否破表
作者: tanjiunnya    时间: 2006-3-17 09:35:31

晕哪。。。。楼主,我看不懂这种数据学啊。。。为什么赵云*赵云的地址是00816??哪有自己与自己增加友好度阿?如果我要看关羽和张飞的友好度,地址是什么?我看得很糊涂。。
作者: 雪飞无痕    时间: 2006-3-17 09:46:23

里面的数据是十进还是十六进,友好度增加那么义勇武将参上也更容易吧,呵呵,很怀念与义勇武将一起放无双的感觉
作者: 雪飞无痕    时间: 2006-3-17 09:52:10

savedate下面有四个文件,到底是哪个
作者: dfmas    时间: 2006-3-17 13:31:25

看了楼主的表格,发现月英竟然只与月英自己才有友好度,而与其他武将没有友好度?

类似这样的武将很多,越是排在后面的武将越是少,似乎赵云与所有武将都有友好度!!

请楼主仔细检查一下吧,是不是遗漏了内容。

不可能月英等人与其他武将没有友好度吧?
作者: lingyer    时间: 2006-3-17 20:08:59

表格没有问题,估计是压缩格式把大家都搞糊涂了。

表中之所以有赵云*赵云之类自己和自己的友好度,可能是因为光荣用这个作为分隔。武将自己和自己的友好度永远是08,所以无视掉就可以了。

要查关羽*张飞的友好度,就查询“关羽”行*“张飞”列所对应的格子,或者“张飞”行*“关羽”列所对应的格子。这两个格子里必定有且只有一个是有内容的。格子的内容就是有好度所对应的地址。

顺便回楼上的,月英和某武将的友好度不就是该武将和月英的友好度吗?查一下“某武将”行*“月英”列不就行了。

顺便举个例子:
月英*赵云:查“月英”行*“赵云”列为空,“赵云”行*“月英”列为00083F,则月英与赵云间友好度的地址为00083F
作者: 雪飞无痕    时间: 2006-3-18 08:22:31

强啊,如果再加上自定义武将就完美了,强烈的期待中【支持】
作者: tanjiunnya    时间: 2006-3-18 09:02:13

你看看,如果我要找典韦*张飞 就找不到了。。。。只有空白。
作者: tanjiunnya    时间: 2006-3-18 09:03:29

难道正确的找法就是张飞*典韦吗??如果是,那我就可以开始做修改器了。
作者: j_hane    时间: 2006-3-18 10:15:43

自创武将之间有友好度吗?

换言之自创武将的义勇武将可以是自创武将吗?
作者: lingyer    时间: 2006-3-19 08:35:21

最初由 tanjiunnya 发表
[B]难道正确的找法就是张飞*典韦吗??如果是,那我就可以开始做修改器了。 [/B]

没错,就是这样的,张飞和典韦之间的友好度,自然典韦*张飞和张飞*典韦是一样的,只需要存储其中的一个即可。所以我前面才说“这两个格子里必定有且只有一个是有内容的”。

另外回楼上的,目前自创武将的友好度还没有找出,个人怀疑自创武将可能就没有友好度这个参数。但是验证这个猜想需要特殊的存档。如果楼上手上有使用自创武将放激・无双乱舞的存档,请发给我一份。
作者: tanjiunnya    时间: 2006-3-19 10:49:43

这是以前一名会员--魔魂 给本人的一个存档,里面的是出现敌猛将--庞统,不知道对你目前的研究是否还有用处?
作者: tanjiunnya    时间: 2006-3-20 17:06:30

最初由 lingyer 发表
[B]顺便说一下
新武将属性里面从06AA到06AD这四个4B已经确定为人物的弓攻、弓防、马攻、马防,具体是这样的:

000006AA 弓攻

000006AB 弓防

000006AC 马攻

000006AD 马防


地址000006AF(在人物速度和... [/B]


这些都加入了本人的修改器。大家到这里下载:http://game1.ali213.net/showthread.php?s=&threadid=874063
作者: Remex    时间: 2006-3-20 19:53:47

这都找到修改的了,牛啊,支持,谢谢【支持】 【支持】 【支持】 【支持】 【支持】 【支持】 【支持】 【支持】
作者: tanjiunnya    时间: 2006-3-24 14:06:47

友好度修改部分已经完成:http://game.ali213.net/showthread.php?s=&threadid=880024
作者: lingyer    时间: 2006-3-26 00:06:40

最初由 tanjiunnya 发表
[B]这是以前一名会员--魔魂 给本人的一个存档,里面的是出现敌猛将--庞统,不知道对你目前的研究是否还有用处? [/B]

前几天出差去了,刚刚回来。
存档我下了,非常感谢。只可惜这个存档里是用史实武将打出的敌猛将,我需要的是用自创武将打出义勇武将或敌猛将。
目前就我自己的实验结果来看,基本上可以确定自定义武将没有友好度。因为我用练满的自定义武将单挑长坂赵云十余次,然后比较单挑前和单挑后的存档,未发现类似友好度改变的特别变化。
如果想推翻这一假设,最佳的反证应该就是义勇武将或敌猛将。因为出现的义勇武将和自己的友好度一定是0F,而敌猛将应该为00,这两个数值决不会是自定义武将和史实武将友好度的初始值。我发帖寻求用自创武将打出义勇武将或敌猛将的存档就是为了这个目的。
目前存档基本属性方面的东西已经挖的差不多了,最近我的主要精力会放在无双模式存档上,然后是中断存档。如果有什么新的发现,我会尽快帖出来的。
作者: tanjiunnya    时间: 2006-3-26 10:00:24

最初由 lingyer 发表
[B]前几天出差去了,刚刚回来。
存档我下了,非常感谢。只可惜这个存档里是用史实武将打出的敌猛将,我需要的是用自创武将打出义勇武将或敌猛将。
目前就我自己的实验结果来看,基本上可以确定自定义武将没有友好度。... [/B]


呵呵~~ 希望可以看到你的最新研究,你上次说的护卫S攻防有没有经过详细测试?
作者: 江浦淳    时间: 2006-3-26 13:11:19

请问这个自创武将要是用大剑、细剑的,还是用历史武将招式的?^_^




欢迎光临 游侠NETSHOW论坛 (https://game.ali213.net/) Powered by Discuz! X2