赞 | 0 |
VIP | 186 |
好人卡 | 0 |
积分 | 1 |
经验 | 5829 |
最后登录 | 2012-12-21 |
在线时间 | 83 小时 |
Lv1.梦旅人 龙皇
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 83 小时
- 注册时间
- 2007-8-8
- 帖子
- 2956
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
在RMXP编辑器中限制了地图制作的张数!
虽然制作地图超过999张对一般人来说不太可能,
但我还是说明一下:万一超过999张该如何扩充制作地图?
首先我们先必须知道在地图做编辑时(存档后),
会在工程的Data资料夹下产生
Map001.rxdata ,Map002.rxdata ,Map003.rxdata....Map***.rxdata
再由Game_Map脚本中的
@map = load_data(sprintf("Data/Map%03d.rxdata", @map_id))
(其中%03d表示地图最大ID为3位数)
载入地图档案。
在RMXP编辑器中地图最大ID量默认是3位数的,应该破解编制器,把编号改成4位数
(並把Game_Map脚本中的%03d改成%04d),但是要破解编制器不容易,所以我们可以
利用脚本从不同的文件夹内(不同的路径)读取新地图DATA。
首先新建立N个Data资料夹(Data1,Data2,.....DataN)
再利用游戏某变量 $game_variables[变量编号]=数值 控制
把Game_Map类里@map = load_data(sprintf("Data/Map%03d.rxdata", @map_id))
改成
(这里以游戏变量编号2为例)
- case $game_variables[2]
- when 0
- @map = load_data(sprintf("Data/Map%03d.rxdata", @map_id))
- when 1
- @map = load_data(sprintf("Data1/Map%03d.rxdata", @map_id))
- when 2
- @map = load_data(sprintf("Data2/Map%03d.rxdata", @map_id))
- .........
- when [b]N[/b]
- @map = load_data(sprintf("Data[b]N[/b]/Map%03d.rxdata", @map_id))
- end
复制代码 这样基本上 伪●破除地图999张的限制 已经完成了!
接下来要介绍:应该要如何编辑新的地图?
当制作地图超过999张(该999张地图Data都存放在Data资料夹下),
开新的工程开始制作新地图,做完后存档,
再把新的地图Data复制到以前的工程Data1资料夹下,
依此类推.......
但当然制作新的工程过程中必须注意:
事件里如果要用到其他数据那得确保所有数据编号跟以前的工程一致!
像开关ID,Tilesets ID,变量ID..等等 要跟以前的工程配合才行!
所以我建议:
先把旧工程复制一份当新的工程用,再把复制的那一份(当新的工程用的那一份)里的地图
999张全部删除,再重新制作新的地图。
这样一来编辑不容易出错,
二来要添加开关,变数,图块Tilesets,..等等容易同步添加
最后要介绍的是:应该要如何跨越目录做地图场所移动?
先使用游戏某变量 $game_variables[变量编号]=数值 控制帶入你要的Data资料夹数值,
然後跨越目录做地图场所移动前必须$game_map = Game_Map.new重新讀取
最后再利用变数指定场所移动的 (新目录下)目的地
在事件頁编辑后如下:
但如果是在对话完结束后要跨越目录地图场所移动时,至少要等待5桢以上
否则会出现以下错误:
对话完结束后正確事件頁编辑要如下所示:
范例工程:
主工程(195KB)
http://rpg.blue/upload_program/f ... MAP999_88365305.rar
子工程(189KB)
http://rpg.blue/upload_program/files/子工程_88365344.rar
(至目前为止这种方法还没有发现错误,如果范例工程有发现错误请告知,谢谢。)
补充:
范例工程中使用了地图显示名称的脚本,这个脚本也是要做小修改的,道理跟这个类似,
只是这次换成只有一个的MapInfos.rxdata了,自己看看哪里做了修改吧!!
|
|