注册 | 登录

游侠NETSHOW论坛





查看: 2487|回复: 15
打印 上一主题 下一主题

[原创] 一个儿时的梦想终于圆了,大航海家3自制霍尔克战舰修改器 [复制链接]

帖子
22
精华
0
积分
12
金钱
142
荣誉
0
人气
8
评议
0
跳转到指定楼层
楼主
发表于 2020-4-26 18:46:36 |只看该作者 |倒序浏览
本帖最后由 维尔纳夫 于 2020-4-26 21:31 编辑

1:你是否经常感觉霍尔克满员满炮却追不上敌人,咬牙切齿。
2:是不是克蕾儿速度很快但是人太少不适合肉搏。
曾经我玩了同公司旗下的海商王2,发现里面英国战列舰lineship很大,但是直线顺风下,我的corvette巡洋舰跑不掉,被他追上,后来一看ini数据,
才知道,原来战列舰的最大速度超过小舰,而最小速度低于小舰,这就对了嘛,大船帆多,直线顺风肯定要开的快,这是常理。
后来几座,大航海家4(看过mod的都知道,霍尔克vmax要大于克蕾儿,但是vmin却小于史耐克)或者海商王3都是如此设定的,这很好。
但是大航海家4,我买的正版,却因为win10,不停地卡,也就是人一多就开始卡,然后点击城市跳出,而且海战毫无乐趣,敌人根本不知道逃跑,就是转圈圈然后收帆升帆的游戏,毫无乐趣。不像大航海家3,可以自己装加农炮,还会被打掉,很真实,就像割喉岛一样,很好玩,但是他有个硬伤,海战硬伤!!!
就是战列舰霍尔克,最大速度只有5节,有时炮装满连克格也追不上,射程又有限制,不像大航海家4,射程很大,所以大航海家3海战毫无海战对轰的乐趣,这需要改变。
于是在几年里,真的,我寻找了太多的方法,太多。。。因为是kalypso的游戏,海商王2可以用一个教dragon unpacker的工具,把里面的cpr文件(一个加密的压缩文件)解包,然后找到船只的ini,改里面的vmax和vmin就轻而易举diy,大航海家4也是如此,下一个inimod,然后找到ship的ini,然后diy一下,可是!!可是!大航海家3不行,!!!!!
你用unpacker解包cpr后,会发现也有ini,和其他一些诸如相亲对象头像的文件,但是没有船只的,船只的所有数据全部加密在里面的dat文件下,也就是密中密,太恶心了!
所以,想通过改船ini的方法,怕是不行了。
于是,我努力寻找方法,很努力,直到今天,终于成功了。
这是修改器的界面,简单一键。


先说说,过程,于是我找了许多网上的帖子,看看有没有办法,其中一个说,什么gp光速船,说吧容量改大,然后超过上限,就变成光速船,这tmd是bug,根本不是游戏,我自学一点点汇编就知道,因为载重量会影响船速,所以当你栽种变大后,会溢出数据,误打误撞影响到ecx的变量也就是汇编里面寄存船速的变量,这个就是修改的核心(后话),我想这bug不能算功能,要做一个没有bug的修改,真的很难,于是自学一点点汇编,先说说思路,真的很坎坷,还望您倾听。
1:根据以往的经验,影响船速的有风向,载重,耐久度,船长等级,船只类型等等因素,如何下手呢,用debug调试,先在船长位置和耐久度位置做好断点,然后进海战,发现有6处地方不停地在访问测试船长和耐久度,我就在想,只有船速会这么高频率地测试访问这两个地址,于是在6个地址中,选出两个最近的,运气真的很好,点开一看,一个在访问好耐久以后立刻去访问下一个船长,说明这个地址离胜利不远了。
2:修改船速方法,一开始我想,用耐久度来制衡,也就是霍尔克和克雷尔的耐久度不变,然后其他船,在读取他耐久的时候,反馈的值我diy设成10%的耐久,(不会影响游戏,是我自己强行插入的耐久,并不会作为数据导出到海战结束),后来发现,敌人的史耐克和克格是慢了下来,但是我的霍尔克速度也没有快多少,(这里大航海家3降低耐久是会减速,但是提高耐久不会加速,比如你提高个120%,速度还是100%的时候的速度),这时候,我就要在速度ecx变量上做文章,找这个真的,找了好久,好久,终于找到了,然后逻辑如下,
if 船型是霍尔克,那么把ecx扩大2倍,
else 船型是克雷尔,那么游戏原来设置。
else 其他船种,把他耐久读取强制反馈为10%(就好比你给了他几炮,他慢下来,但是上文说过,这不会影响他实际的耐久,所以看起来还是崭新的克格,只不过速度慢了,耐久还是100%,还可以挨n炮直到沉没)。


使用道具 举报

帖子
22
精华
0
积分
12
金钱
142
荣誉
0
人气
8
评议
0
沙发
发表于 2020-4-26 18:46:59 |只看该作者
先说说,过程,于是我找了许多网上的帖子,看看有没有办法,其中一个说,什么gp光速船,说吧容量改大,然后超过上限,就变成光速船,这tmd是bug,根本不是游戏,我自学一点点汇编就知道,因为载重量会影响船速,所以当你栽种变大后,会溢出数据,误打误撞影响到ecx的变量也就是汇编里面寄存船速的变量,这个就是修改的核心(后话),我想这bug不能算功能,要做一个没有bug的修改,真的很难,于是自学一点点汇编,先说说思路,真的很坎坷,还望您倾听。
1:根据以往的经验,影响船速的有风向,载重,耐久度,船长等级,船只类型等等因素,如何下手呢,用debug调试,先在船长位置和耐久度位置做好断点,然后进海战,发现有6处地方不停地在访问测试船长和耐久度,我就在想,只有船速会这么高频率地测试访问这两个地址,于是在6个地址中,选出两个最近的,运气真的很好,点开一看,一个在访问好耐久以后立刻去访问下一个船长,说明这个地址离胜利不远了。
2:修改船速方法,一开始我想,用耐久度来制衡,也就是霍尔克和克雷尔的耐久度不变,然后其他船,在读取他耐久的时候,反馈的值我diy设成10%的耐久,(不会影响游戏,是我自己强行插入的耐久,并不会作为数据导出到海战结束),后来发现,敌人的史耐克和克格是慢了下来,但是我的霍尔克速度也没有快多少,(这里大航海家3降低耐久是会减速,但是提高耐久不会加速,比如你提高个120%,速度还是100%的时候的速度),这时候,我就要在速度ecx变量上做文章,找这个真的,找了好久,好久,终于找到了,然后逻辑如下,
if 船型是霍尔克,那么把ecx扩大2倍,
else 船型是克雷尔,那么游戏原来设置。
else 其他船种,把他耐久读取强制反馈为10%(就好比你给了他几炮,他慢下来,但是上文说过,这不会影响他实际的耐久,所以看起来还是崭新的克格,只不过速度慢了,耐久还是100%,还可以挨n炮直到沉没)。
以下是脚本的代码:
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048)
label(returnhere)
label(huoerke)
label(exit)
label(keleier)
label(qita)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here

cmp dl 03
je huoerke
cmp dl 01
je keleier
jmp qita
huoerke:
mov edx,[esi+18]
imul ecx,eax
mov eax,ecx
shl ecx,1
add ecx,eax
shr ecx,1
jmp exit
keleier:
mov edx,[esi+18]
imul ecx,eax
jmp exit
qita:
//mov edx,0a
mov edx,[esi+18]
imul ecx,eax
jmp exit




exit:
jmp returnhere

"P3.exe"+1771AF:
jmp newmem
nop
returnhere:




[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
"P3.exe"+1771AF:
mov edx,[esi+18]
imul ecx,eax
//Alt: db 8B 56 18 0F AF C8


以下是汇编的代码:

使用道具 举报

帖子
22
精华
0
积分
12
金钱
142
荣誉
0
人气
8
评议
0
板凳
发表于 2020-4-26 18:47:19 |只看该作者
最后结果就是,霍尔克现在顺风,配船长,最大可以开到11节,逆风就悲剧了还是1节。
克雷尔不变,顺风配船长最大12节,逆风4节。
克格悲剧了,最大6节,逆风3节
史耐克也悲剧了,最大7节,逆风4节。
不过这不就是大航海家4的海战数据么,霍尔克,战列舰。
有一次海战,我准备捉敌方克格,娘的,我顺风开的比他快,他挺聪明,一个转身,开始逆风逃跑,哈哈。

使用道具 举报

帖子
22
精华
0
积分
12
金钱
142
荣誉
0
人气
8
评议
0
地板
发表于 2020-4-26 18:48:00 |只看该作者
先说说,过程,于是我找了许多网上的帖子,看看有没有办法,其中一个说,什么gp光速船,说吧容量改大,然后超过上限,就变成光速船,这tmd是bug,根本不是游戏,我自学一点点汇编就知道,因为载重量会影响船速,所以当你栽种变大后,会溢出数据,误打误撞影响到ecx的变量也就是汇编里面寄存船速的变量,这个就是修改的核心(后话),我想这bug不能算功能,要做一个没有bug的修改,真的很难,于是自学一点点汇编,先说说思路,真的很坎坷,还望您倾听。
1:根据以往的经验,影响船速的有风向,载重,耐久度,船长等级,船只类型等等因素,如何下手呢,用debug调试,先在船长位置和耐久度位置做好断点,然后进海战,发现有6处地方不停地在访问测试船长和耐久度,我就在想,只有船速会这么高频率地测试访问这两个地址,于是在6个地址中,选出两个最近的,运气真的很好,点开一看,一个在访问好耐久以后立刻去访问下一个船长,说明这个地址离胜利不远了。
2:修改船速方法,一开始我想,用耐久度来制衡,也就是霍尔克和克雷尔的耐久度不变,然后其他船,在读取他耐久的时候,反馈的值我diy设成10%的耐久,(不会影响游戏,是我自己强行插入的耐久,并不会作为数据导出到海战结束),后来发现,敌人的史耐克和克格是慢了下来,但是我的霍尔克速度也没有快多少,(这里大航海家3降低耐久是会减速,但是提高耐久不会加速,比如你提高个120%,速度还是100%的时候的速度),这时候,我就要在速度ecx变量上做文章,找这个真的,找了好久,好久,终于找到了,然后逻辑如下,
if 船型是霍尔克,那么把ecx扩大2倍,
else 船型是克雷尔,那么游戏原来设置。
else 其他船种,把他耐久读取强制反馈为10%(就好比你给了他几炮,他慢下来,但是上文说过,这不会影响他实际的耐久,所以看起来还是崭新的克格,只不过速度慢了,耐久还是100%,还可以挨n炮直到沉没)。

使用道具 举报

帖子
22
精华
0
积分
12
金钱
142
荣誉
0
人气
8
评议
0
5#
发表于 2020-4-26 21:30:59 |只看该作者
先说说,过程,于是我找了许多网上的帖子,看看有没有办法,其中一个说,什么光速船,说吧容量改大,然后超过上限,就变成光速船,这是bug,根本不是游戏,我自学一点点汇编就知道,因为载重量会影响船速,所以当你栽种变大后,会溢出数据,误打误撞影响到ecx的变量也就是汇编里面寄存船速的变量,这个就是修改的核心(后话),我想这bug不能算功能,要做一个没有bug的修改,真的很难,于是自学一点点汇编,先说说思路,真的很坎坷,还望您倾听。
1:根据以往的经验,影响船速的有风向,载重,耐久度,船长等级,船只类型等等因素,如何下手呢,用debug调试,先在船长位置和耐久度位置做好断点,然后进海战,发现有6处地方不停地在访问测试船长和耐久度,我就在想,只有船速会这么高频率地测试访问这两个地址,于是在6个地址中,选出两个最近的,运气真的很好,点开一看,一个在访问好耐久以后立刻去访问下一个船长,说明这个地址离胜利不远了。
2:修改船速方法,一开始我想,用耐久度来制衡,也就是霍尔克和克雷尔的耐久度不变,然后其他船,在读取他耐久的时候,反馈的值我diy设成10%的耐久,(不会影响游戏,是我自己强行插入的耐久,并不会作为数据导出到海战结束),后来发现,敌人的史耐克和克格是慢了下来,但是我的霍尔克速度也没有快多少,(这里大航海家3降低耐久是会减速,但是提高耐久不会加速,比如你提高个120%,速度还是100%的时候的速度),这时候,我就要在速度ecx变量上做文章,找这个真的,找了好久,好久,终于找到了,然后逻辑如下,
if 船型是霍尔克,那么把ecx扩大2倍,
else 船型是克雷尔,那么游戏原来设置。
else 其他船种,把他耐久读取强制反馈为10%(就好比你给了他几炮,他慢下来,但是上文说过,这不会影响他实际的耐久,所以看起来还是崭新的克格,只不过速度慢了,耐久还是100%,还可以挨n炮直到沉没)。

使用道具 举报

Fashion&man@(*$)%萌
游侠元老版主
游侠剑阁工作组【评测】
海魂☆飞翔的荷兰人
★★★★★★★

元老版主勋章版主勋章资深版主勋章大头像勋章

帖子
7120
精华
6
积分
6077
金钱
46335
荣誉
130
人气
172
评议
5

6#
发表于 2020-5-13 02:37:00 来自手机 |只看该作者
大致看完了  楼主讲的比较复杂  大航海家3确实经典  可以把研究成果做城可执行化工具  分享一下。虽然游戏很老,这些游戏在我的老台式机Xp系统里都珍藏着  没事可以再回味一下

使用道具 举报

帖子
22
精华
0
积分
12
金钱
142
荣誉
0
人气
8
评议
0
7#
发表于 2020-5-13 02:49:59 |只看该作者
小小旅行家 发表于 2020-5-13 02:37
大致看完了  楼主讲的比较复杂  大航海家3确实经典  可以把研究成果做城可执行化工具  分享一下。虽然游戏 ...

我win10照样玩大航海家3,可能兄弟您设置不对,
可以参考我发的帖子。

使用道具 举报

帖子
22
精华
0
积分
12
金钱
142
荣誉
0
人气
8
评议
0
8#
发表于 2020-5-13 02:50:47 |只看该作者
小小旅行家 发表于 2020-5-13 02:37
大致看完了  楼主讲的比较复杂  大航海家3确实经典  可以把研究成果做城可执行化工具  分享一下。虽然游戏 ...

已经按照你的要求,做成马虎牛2020补丁了,你可以下载。
http://luxiangsheng518.ys168.com/

使用道具 举报

Fashion&man@(*$)%萌
游侠元老版主
游侠剑阁工作组【评测】
海魂☆飞翔的荷兰人
★★★★★★★

元老版主勋章版主勋章资深版主勋章大头像勋章

帖子
7120
精华
6
积分
6077
金钱
46335
荣誉
130
人气
172
评议
5

9#
发表于 2020-5-13 03:00:45 来自手机 |只看该作者
嗯多谢  明天白天我来看下 其实我玩这些老游戏还是喜欢用xp系统 我也特别怀旧  以前是这个版的版主 和sun大一起  现在没落了  多谢多谢!

使用道具 举报

Fashion&man@(*$)%萌
游侠元老版主
游侠剑阁工作组【评测】
海魂☆飞翔的荷兰人
★★★★★★★

元老版主勋章版主勋章资深版主勋章大头像勋章

帖子
7120
精华
6
积分
6077
金钱
46335
荣誉
130
人气
172
评议
5

10#
发表于 2020-5-13 03:03:46 来自手机 |只看该作者
维尔纳夫 发表于 2020-5-13 02:50
已经按照你的要求,做成马虎牛2020补丁了,你可以下载。
http://luxiangsheng518.ys168.com/
...

以前什么海商王  大航海家系列 大航海时代  海狗系列 都是玩过很多遍的 和玩家讨论 攻略  满满的回忆  你是在国外吧  这里很晚了  先睡啦

使用道具 举报

帖子
22
精华
0
积分
12
金钱
142
荣誉
0
人气
8
评议
0
11#
发表于 2020-5-13 15:43:41 |只看该作者
小小旅行家 发表于 2020-5-13 03:03
以前什么海商王  大航海家系列 大航海时代  海狗系列 都是玩过很多遍的 和玩家讨论 攻略  满满的回忆  你 ...

兄弟,我就是你昨晚交流的修改玩家,我们真的相见恨晚,可惜已经不逢时了,大航海家3也已经过去,哎

使用道具 举报

Fashion&man@(*$)%萌
游侠元老版主
游侠剑阁工作组【评测】
海魂☆飞翔的荷兰人
★★★★★★★

元老版主勋章版主勋章资深版主勋章大头像勋章

帖子
7120
精华
6
积分
6077
金钱
46335
荣誉
130
人气
172
评议
5

12#
发表于 2020-5-13 15:54:50 |只看该作者
维尔纳夫 发表于 2020-5-13 15:43
兄弟,我就是你昨晚交流的修改玩家,我们真的相见恨晚,可惜已经不逢时了,大航海家3也已经过去,哎
...

是的 现在没有啥像样的航海大作 没落了 都是老人了

使用道具 举报

帖子
22
精华
0
积分
12
金钱
142
荣誉
0
人气
8
评议
0
13#
发表于 2020-5-13 16:31:39 |只看该作者
小小旅行家 发表于 2020-5-13 15:54
是的 现在没有啥像样的航海大作 没落了 都是老人了

能加一下qq吗或者微信,交个朋友。
我好喜欢你发的那个大航海家3手册,可是下载不了,能否传我一份谢谢。

使用道具 举报

Fashion&man@(*$)%萌
游侠元老版主
游侠剑阁工作组【评测】
海魂☆飞翔的荷兰人
★★★★★★★

元老版主勋章版主勋章资深版主勋章大头像勋章

帖子
7120
精华
6
积分
6077
金钱
46335
荣誉
130
人气
172
评议
5

14#
发表于 2020-5-13 16:33:15 |只看该作者
维尔纳夫 发表于 2020-5-13 16:31
能加一下qq吗或者微信,交个朋友。
我好喜欢你发的那个大航海家3手册,可是下载不了,能否传我一份谢谢。 ...

私聊 我现在很久没玩了 得找找

使用道具 举报

帖子
22
精华
0
积分
12
金钱
142
荣誉
0
人气
8
评议
0
15#
发表于 2020-5-13 17:42:30 |只看该作者
小小旅行家 发表于 2020-5-13 16:33
私聊 我现在很久没玩了 得找找

好的

使用道具 举报

帖子
465
精华
0
积分
234
金钱
5255
荣誉
0
人气
1
评议
0
16#
发表于 2020-7-11 10:40:51 |只看该作者
大航海家3一直留着,真是一款好游戏

使用道具 举报

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

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

GMT+8, 2024-4-25 10:07 , Processed in 0.313045 second(s), 11 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

分享到