luxiangsheng518 发表于 2020-4-26 03:20

一个儿时的梦想终于圆了,大航海家3自制霍尔克战舰修改器

本帖最后由 luxiangsheng518 于 2020-4-26 15:35 编辑

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的方法,怕是不行了。
于是,我努力寻找方法,很努力,直到今天,终于成功了。
这是修改器的界面,简单一键。

luxiangsheng518 发表于 2020-4-26 03:35

本帖最后由 luxiangsheng518 于 2020-4-26 15:32 编辑

先说说,过程,于是我找了许多网上的帖子,看看有没有办法,其中一个说,什么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炮直到沉没)。
以下是脚本的代码:

//code from here to '' 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,
imul ecx,eax
mov eax,ecx
shl ecx,1
add ecx,eax
shr ecx,1
jmp exit
keleier:
mov edx,
imul ecx,eax
jmp exit
qita:
//mov edx,0a
mov edx,
imul ecx,eax
jmp exit




exit:
jmp returnhere

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





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


以下是汇编的代码:

luxiangsheng518 发表于 2020-4-26 03:45

最后结果就是,霍尔克现在顺风,配船长,最大可以开到11节,逆风就悲剧了还是1节。
克雷尔不变,顺风配船长最大12节,逆风4节。
克格悲剧了,最大6节,逆风3节
史耐克也悲剧了,最大7节,逆风4节。
不过这不就是大航海家4的海战数据么,霍尔克,战列舰。
有一次海战,我准备捉敌方克格,娘的,我顺风开的比他快,他挺聪明,一个转身,开始逆风逃跑,哈哈。

luxiangsheng518 发表于 2020-4-26 03:50

霍尔克在顺风条件下,俘获崭新的史耐克,以前想也不敢想。

luxiangsheng518 发表于 2020-4-26 03:51

尽管修改,但是丝毫不影响原来的击沉

luxiangsheng518 发表于 2020-4-29 12:43

本帖最后由 luxiangsheng518 于 2020-5-12 03:33 编辑

下载地址如下:
http://luxiangsheng518.ys168.com/

附送大航海家3船长永不退休修改器。也是自己做的。用汇编语言

qloveaate1 发表于 2020-8-4 23:20

除了一声WC!表示震惊之外!无话可说!楼主动手动脑能力真强!

jfzl666 发表于 2021-2-4 20:54

WOC 有没有CE脚本 直接改船速啊。。跑图时间太长了点。。想还快点的

qiiioam49 发表于 2021-2-22 20:40

luxiangsheng518 发表于 2020-4-26 03:35
先说说,过程,于是我找了许多网上的帖子,看看有没有办法,其中一个说,什么gp光速船,说吧容量改大,然后 ...

的方法,怕是不行了。
于是,我努力寻找方法,很努力,直到今天,终于成功了。
这是修改器的界面,简的方法,怕是不行了。
于是,我努力寻找方法,很努力,直到今天,终于成功了。
这是修改器的界面,简

yuqiang! 发表于 2022-2-17 12:01

支持一下,不知道能不能用,顶顶顶

282520489 发表于 2022-6-23 10:16

这毅力和动手能力,实在佩服!
页: [1]
查看完整版本: 一个儿时的梦想终于圆了,大航海家3自制霍尔克战舰修改器