Board logo

标题: [脚本] 教你如何给大地图增加新的飞行点 [打印本页]

作者: liuyanghejerry    时间: 2010-1-31 14:08     标题: 教你如何给大地图增加新的飞行点

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

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

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

前言:

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


第一部分:增加飞行点数量上限

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

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

第二部分: 重定向其它数据,为新增飞行点数据腾地方

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

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


第三部分:把额外的飞行点引入地图

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

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

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

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

0313090020000000

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

第四部分: 让游戏识别它

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

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

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

实际上这样的数据一共两种,其结构是这样的:
复制内容到剪贴板
代码:
03 - 意义未知,但几乎所有的

00 - 飞行点编号

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

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

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

[attach]25458[/attach]


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


第五部分:在游戏里激活新飞行点

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

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

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

在1号道路新建一个地图头脚本,类型选择第三种,在脚本当中要写入:
001 setworldmapflag 0x1101
002 end
点击查看原始代码
这一句。

之后进入游戏,在游戏里进入1号道路这张地图,再使用飞行就可以达到了。
作者: 小R    时间: 2010-1-31 14:11

是要用XSE吧,能给我个下载地址么,我找不到
作者: liuyanghejerry    时间: 2010-1-31 14:17

http://poketb.com/bbs/thread-6421-1-2.html
作者: 小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

引用:
原帖由 恐怖 于 2010-2-23 09:51 发表
不行呀,一直报错,后来还死机了
我亲自试验了的,您一定是哪个细节操作有误吧。
作者: 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

已經保存了。
作者: 伊卡洛斯之翼    时间: 2017-8-24 21:21

这个好,先马克




欢迎光临 口袋社区-Poke The BBS (https://www.poketb.com/) Powered by Discuz! 6.1.0F