口袋社区-Poke The BBS's Archiver

liuyanghejerry 发表于 2010-1-31 14:08

教你如何给大地图增加新的飞行点

原文由Jambo51编写,我阅读了之后感觉虽然他写的很迷离,但确实见效了,于是翻译过来了,不过不是字字对译,感觉没那个必要。

这里需要注意,本文当中的重点是如何增加飞行点,我不会对一些其它提及的专业术语作出解释,所以阅读本文时,请务必注意要有足够的基础知识和改版经验。

用到的工具:
Advance Map 1.92
Hex工具,我用的是Winhex
XSE

[size=5]前言:[/size]

地图上有很多个“地点”,比如1号道路、2号道路以及各个水路。当然也包括各个城镇。但并不是所有的点都可以通过飞行到达。
本文所讲述的,就是通过修改、增添数据,将原本不能飞行达到的地点,改做可以飞行达到的。而“地点”的总数是不变的。
游戏里的“地点”是有各自的编号的,当游戏碰到一个“地点”时,通过编号来识别究竟是哪一个“地点”,从而显示一些信息(比如显示“1号路”或者“真新镇”)。
游戏内部的“地点”编号只占用一个字节(00~FF),游戏本身已经用到了BB。
本文将示范,如何将游戏中原本飞行不可到达的地点,变为可到达的地点。


[size=5]第一部分:增加飞行点数量上限[/size]

0xBFCB6 - 把这个数字改高,改多高你自己看着办~(新增的飞行点数量就是[你改的数量-0x14])
0xBFC7C - 同理,要加你就两个都加一样多,不过这个总比上面那个小0x1

测试ROM是否能够正常运行,如果能,备份下~

[size=5]第二部分: 重定向其它数据,为新增飞行点数据腾地方[/size]

把位于0x3EEC98,长达80字节的数据表重定向到其它你认为合适的地方,而且必须以0来结尾数据。这个表的指针位于0xBFDA4。

现在再来测试ROM,如果能够正常工作,备份~


[size=5]第三部分:把额外的飞行点引入地图[/size]

现在回到0x3EEC98,在那里写入类似如下格式的数据:

[地图库号][地图编号][X坐标][00][Y坐标][00][00][00]

这就是飞行点数据的结构,要给哪张地图增加飞行点,就写那张地图的对应数据。

比如如果要给1号道路增加飞行点,就要这样写:

0313090020000000

在HEX编辑器里保存,然后打开AM,转到你增加了飞行点的那张地图,如果的确出现了那个新增的飞行点,而且位置也完全正确,那么保存备份吧~

[size=5]第四部分: 让游戏识别它[/size]

之前只是让这个飞行点数据出现在了ROM里,接下来我们必须要让游戏系统知道它的存在,识别它。

打开HEX编辑器来到0x3F2EE0。这里放着的是飞行点的另一组数据,它决定了飞行点是否能够主动飞行达到(有些飞行点虽然存在,可是系统将它设定为不能飞行直达,比如1号道路上就有飞行点,当你在一号道路的时候打开地图能看到主角就在一号道路,这就是因为那个飞行点被激活了,但你无法用飞技能飞到那里)。

观察一下就可以发现这里的数据都是类似于03XXXX这样的。

实际上这样的数据一共两种,其结构是这样的:[code]
03 - 意义未知,但几乎所有的

00 - 飞行点编号

01 - 未知,但如果想要让这个地点可以到达,必须似的它的值比飞行点编号大0x2。[/code]游戏原本占用的飞行点已经占到了031214,所以新加的飞行点就要从031315开始。

打开AM的大地图编辑器,找到你要增加飞行点的地方,比如1号道路。

按照如图所示的顺序进行操作:

[attach]25458[/attach]


这里需要注意的是,flag和脚本里的普通flag不一样,而是指的worldmapflag。游戏原本的worldmapflag占用到0x1100,我们要用的话,要写0x1100以后的(比如0x1101)。


[size=5]第五部分:在游戏里激活新飞行点[/size]

大家应该注意到,并不是你拿到飞行技能之后,就能飞去所有的城市,只有曾经去过的城市,才能用飞行技能达到。

这就是因为,当你走进某个城市的地图时,地图头放置的脚本激活了这个城市的worldmapflag。

我们自己新增的worldmapflag也需要有这样一个步骤。

在1号道路新建一个地图头脚本,类型选择第三种,在脚本当中要写入:

[xse]setworldmapflag 0x1101
end[/xse]
这一句。

之后进入游戏,在游戏里进入1号道路这张地图,再使用飞行就可以达到了。

小R 发表于 2010-1-31 14:11

是要用XSE吧,能给我个下载地址么,我找不到

liuyanghejerry 发表于 2010-1-31 14:17

[url]http://poketb.com/bbs/thread-6421-1-2.html[/url]

小R 发表于 2010-1-31 14:19

xie xie guan li yuan le

海洋之囧 发表于 2010-1-31 15:45

嗯,那个大地图一打开就一直弹出错误提示是怎么回事呢= =?
美版的好像也会

liuyanghejerry 发表于 2010-1-31 16:09

那不是错误提示,而是告诉你有些事情是不能做的,不信你翻译了错误看看XDD

chaotix 发表于 2010-1-31 17:49

以上的那些偏移量都是仅火红专用的吗?

liuyanghejerry 发表于 2010-1-31 20:58

对,都是美版火红专用。
这一点是比较遗憾的……

roywillow 发表于 2010-2-2 20:37

我记得AM中似乎有添加飞行点的功能……?
那个飞行点数量在事件中能修改么?

cmm 发表于 2010-2-3 13:17

回复 楼主 liuyanghejerry 的帖子

回lz:
可以把飛行點弄再夢幻島之類的地方嗎?!
總之就是弄個飛行點到島嶼上!

Ddfg 发表于 2010-2-3 18:11

这个很有用
只不过只能用在美版火红很郁闷

恐怖 发表于 2010-2-23 09:51

*** 作者被禁止或删除 内容自动屏蔽 ***

liuyanghejerry 发表于 2010-2-23 12:51

[quote]原帖由 [i]恐怖[/i] 于 2010-2-23 09:51 发表 [url=http://poketb.com/bbs/redirect.php?goto=findpost&pid=243997&ptid=15245][img]http://poketb.com/bbs/images/common/back.gif[/img][/url]
不行呀,一直报错,后来还死机了 [/quote]
我亲自试验了的,您一定是哪个细节操作有误吧。

dearkelly 发表于 2010-3-17 16:20

好东西~~~~支持~~~~

x982042303 发表于 2010-3-17 17:24

啊,假如界面汉化一下就更好了(我说的是am)

郁闷的人 发表于 2010-3-20 14:08

太多了 看不懂

vvcent 发表于 2010-4-19 22:05

这东西真不错!!!
马上试试!!!!!

孙悟空 发表于 2010-6-22 22:35

没问题,看懂了

问下飞行点地址应该怎么找,(其他汉化版的),难道真的只能用在美版火红吗,好可惜啊,我想美版能找到地址,中文版应该也行吧

nana 发表于 2010-8-3 13:05

多谢了,我正为添加不了飞行点而发愁呢

孙悟空 发表于 2010-8-12 11:03

今天不可回来,之后突然又看了下了教程,不小心把绿宝石增加飞行点的方法搞定了

kkk烂 发表于 2010-8-29 23:28

恩恩,虽然已经知道了但还是顶一下

舟道寒 发表于 2010-12-19 20:39

啊哈哈,到处飞赴俄感觉很好啊

浪仔小乙 发表于 2013-2-19 14:19

[y_11_s] 已經保存了。

伊卡洛斯之翼 发表于 2017-8-24 21:21

这个好,先马克

页: [1]

Powered by Discuz! Archiver 6.1.0F  © 2001-2007 Comsenz Inc.