Project1

标题: 大地图循环+五交通工具2.0 [打印本页]

作者: 匈魔剑    时间: 2012-10-30 13:04
标题: 大地图循环+五交通工具2.0
本帖最后由 匈魔剑 于 2012-10-30 13:06 编辑

Hi,好久没来这里了……已经完全大变样了……
版主也全都不怎么认识了……
不知道贴子应该怎么发了。。如果有做错,请多包涵。

自己前阵子不小心翻出了自己N年前做的那个通用性极差、做起来极其麻烦的纯事件版大地图循环+五交通工具,对自己当年无比的耐心和奇葩的想法感到十分的……那啥。
于是乎自己就想用正常人类的方式把这个再做一次看看。

范例主要包括两个部分:
1、循环大地图: 就是和VX里一样的那种,走不到尽头的大地图。
2、五交通工具:
    a.浅水船,只能在河流中通行;还包括一个携带船,可以带在身上随时使用。来自FF2
       b.海水船,只能在海中通行;
       c.企业号:可以从船变成飞船,再从飞船变成船,但是不能在陆地着陆; 来自FF3
       d.深海螺号:可以在天上高速飞行,可以潜海,在海里通行。来自FF3
       e.巨鲸号:有内部视角的飞船。可以翻过山飞行。虽然最初出现在FF3,但是这名字却来自FF4……




范例工程:
猛击下载

一些杂七杂八的说明(建议运行看一下范例的效果,再看下面的说明……这些说明基本在范例里也有):
1. 循环大地图可能有bug,但是我懒得再往深研究了。目前的建议是:不要在大地图最边缘的一圈上面设置任何可见的事件。可能有触发事件bug。不要让NPC穿越地图边缘,可能也有bug。而非循环大地图的地图,则和以前一样,没有这些顾虑。
2. 脚本里加★的地方是改动的地方。BigMap_Vehicle和“各种配置”这两个脚本是我新加的。如果想移到自己的游戏里用,前者不用改,后者应该需要改。
3. 大地图注意事项:地图尺寸要够大,最起码得超出一个屏幕的大小……不然也不叫大地图了。注意大地图左边缘和右边缘要能接在一起,上边缘和下边缘也是。这是美工的问题了……
4.想让某张地图变成循环大地图,必须在“各种配置”里把大地图的ID加到$bigMapId这个数组里。加进去之后,地图的详细信息存在$vehOnMap这个哈希表里,比如只需要用$vehOnMap[4],就可以访问4号大地图的信息。
5. 如果有深海螺号的话,就必须有一个水下的地图。用addSubMap(id)这个方法就可以配置了。水下地图的注意事项,很明显……它必须和大地图本身是完全同步的,大小尺寸,图块坐标位置等。不然实际效果会变得无比销魂。
6.再就是设置地形。我一共划了4种地形。是用地形标记来区分的。存在数组里。
    浅水地形——terrain_river 浅水船可通行,海船不可通行。其他飞船可通行。但是深海螺在海底时,不能从浅水地形中上浮。
    海地形——terrain_sea 浅水船不可通行,海船可通行。其他飞船可通行。深海螺在海底时,可以从海地形中上浮。
    山地形——terrain_mount 只有巨鲸号可通行。深海螺号在海底也不可通行。
    森林地形——terrain_forest 不可以在此降落的地形。人物不乘坐交通工具时可以通行。
具体这些对应了哪些地形标记,可以在“各种配置”里改。
7. 如果飞船的下面有一个事件,无论这个事件可不可见,都无法着陆。之所有设计成这样是因为……我暂时想不出来其他更好的设计了……有好主意的话,可以留言告诉俺一声。
8. 当主角得到一个交通工具时,需要将它初始化。用事件脚本:$big_map.changeVeh(事件id, x, y),这样在大地图的某个位置上,就会视一个事件为交通工具。存档读档地图切换时,系统都会自动处理它,再就不用操心了。想把这个交通工具永远删除,也要用这个方法。只不过把x或y设成负数就OK了。
9. 当人物乘上交通工具时,一定要记得加上两行事件脚本:
    $big_map.status = xxx
    $big_map.usingEvent = xxx
第一个是指目前的乘降状态。-1是什么也不乘,0是浅水船,1是海船,2是企业号 3是深海螺 4是海底 5是巨鲸。乘上时务必记得改这个值。不然脚本也没办法知道你坐上的是什么东西,下来时就不用改了,脚本里会自动改回-1。
而$big_map.usingEvent这个,是用来记录你作为交通工具使用的事件是哪个。看一下左上角的事件ID,填进去就可以。
10. 当角色在大地图上乘坐交通工具时,地图上的全部事件仍然是可以触发的。如果你开着一个飞空艇却钻进一个城镇里,就非常斯巴达了(更斯巴达的是之后还会出现恶性bug……)所以记得要给大地图上的全部事件加上一个条件分歧的判断:$big_map.status==-1 只有什么东西也不乘的时候,才会触发事件。也可以以此作一些特殊的设计。比如只有巨鲸号能进入的城镇,就是$big_map.status==5
11. 携带船是用物品控制的。当主角拥有某一物品时,就可以用携带船了。物品ID也在“各种配置”里设置。而企业号可否飞空,深海螺可否潜海,这些都是用开关控制的,看一下就知道
了。很简单。开关号也可以自己配置



再就是我今天发现好像偶尔会出现坐标记录上的bug……我改了改之后,就再也没出现了。因为是偶尔出现的bug,所以我也不知道是真的消灭了,还是仍然存在……= =
如果你发现任何其他bug,欢迎报告。感谢。
作者: zx工作室2    时间: 2012-10-30 16:59
剑叔诈尸了!!!(自重
大地图的交通工具范例么……是XP的真是太好了
说不定用得着~
作者: 月华风    时间: 2012-10-30 18:46
超级不错~~正愁筋斗云不会搞呢~~
作者: 匈魔剑    时间: 2012-10-30 23:22
zx工作室2 发表于 2012-10-30 16:59
剑叔诈尸了!!!(自重
大地图的交通工具范例么……是XP的真是太好了
说不定用得着~ ...

其实我搜XP循环大地图的脚本一直都没搜着……不知道是我搜索的方式不对还是压根就没有……
如果真是没有的话,那还真是奇怪……感觉是蛮会被需要的一个功能。
作者: 阿薩男爵    时间: 2012-10-31 00:05
居然是劍大,能在66見到還真是太巧了!
順便問一下,這個腳本有VX的嗎?
作者: 匈魔剑    时间: 2012-10-31 00:38
阿薩男爵 发表于 2012-10-31 00:05
居然是劍大,能在66見到還真是太巧了!
順便問一下,這個腳本有VX的嗎?

阿萨好~好久不见。
VX应该不太需要了吧,
循环地图、船、飞空艇已经都有了。
作者: 存档不能    时间: 2012-10-31 08:35
好物,顶!
顺便一提,xp有循环大地图脚本的,不过是在地图名里定义的
作者: 1733450036    时间: 2012-10-31 12:04
正愁游戏地图多啊,不好设置进入,这下方便了
作者: 存档不能    时间: 2012-11-1 13:42
想请问一下lz,如果只想要交通工具部分的功能(主要是循环大地图功能不要,因为已经有了),改动过的脚本里哪些是不需要的?
作者: 匈魔剑    时间: 2012-11-2 14:06
存档不能 发表于 2012-11-1 13:42
想请问一下lz,如果只想要交通工具部分的功能(主要是循环大地图功能不要,因为已经有了),改动过的脚本里 ...

所有涉及到display_x和display_y的改动都是可以不要的。
不过其实就算全都复制过去也没有关系,因为如果你不往$bigMapId这个全局变量里加地图ID的话,那么这个大地图脚本完全不会起任何作用。实际效果和没改之前是一样的。
作者: 存档不能    时间: 2012-11-2 14:40
不知道为什么就算不把地图ID代入还是有问题,我只好换其它方式完成交通系统了……
很可惜这么好的脚本不能用
作者: eve592370698    时间: 2013-8-16 14:00
本帖最后由 eve592370698 于 2014-3-7 16:25 编辑

总算搜索到这个帖子了,不过经过测试和分辨率扩展的脚本有冲突:无法扩展地图视野了。而且也会卡得要命。
作者: 化螺耕    时间: 2013-8-16 15:46
哈哈,真的好久不见啊,欢迎回来
太好了,是XP的,抱走了
作者: eve592370698    时间: 2013-12-31 16:02
我想问一下,使用分辨率扩展功能会不会变得特别卡呢?
作者: 空之音符xzx    时间: 2019-3-10 21:38
找到地图循环脚本了,感谢




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1