赞 | 33 |
VIP | 0 |
好人卡 | 0 |
积分 | 17 |
经验 | 0 |
最后登录 | 2024-9-14 |
在线时间 | 126 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 1718
- 在线时间
- 126 小时
- 注册时间
- 2019-1-4
- 帖子
- 110
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 KRZOKUHD 于 2022-9-13 07:46 编辑
突然想到这个老插件没更新
具体说明:
* 嘛,这个开玩笑一般的随机地图设置,滑稽
* 这个采用了最简单的等图块长宽拼接,附带了权重设定,事件复制,图块强制等功能
* 指令:krz.setupcreatemap();初始化读取模板信息。因为读取需要一小段时间所以需要手动读取一次
* krz.startcreatemap(x,y,mapId); 分别为创建的目标地图的 x,y,mapId
* krz.restrictmap(x,y,mapId); 强制设定某一坐标的模板,分别为x,y,模板id
* (此处的x,y为模板坐标,比如四个模板组合的 1,0 的模板坐标,0,0坐标为1号模板
* 2,3
*
* krz.loadcreatemap(mapId); 如果目标地图没有预加载,在setupcreatemap
* 之前使用并且加一点任意啥的等待,比如对话。
*
* 这里的是指的地图编号,不是模板编号 各个方向的连通通道相当于小键盘:7 8
* krz.mazecreate = function(x, y, x_start, y_start, x_end, y_end, road1,road2
* 9 4 5 6 1 2 3 垂直 水平 上单 右单 下单
* ,road3,road4,road5,road6,road7,road8,road9,road10,road11, road100, road20, road30
* , road40, start_room, end_room, rate)
* 左单 开始房间 结束房间 随机(在设置迷宫时有几率转化为随机房间,建议0)
* krz.mazecreate2用法同上,会生成更复杂的迷宫。
*
*
*krz.mazecreate(x, y, x_start, y_start, x_end, y_end, road1,road2,road3,road4,road5,road6,road7,road8,road9,road10,road11, road100, road20, road30, road40, start_room, end_room, rate)
*
road1 road2 road3 ┌ ┬ ┐
road4 road5 road6 ==> ├ ┼ ┤
road7 road8 road9 └ ┴ ┘
road10:| road11:——
road100
road40 ┼ road20
road30
记得,在生成之前,一定要krz.setupcreatemap();krz.loadcreatemap(X);(X为生成目标地图)
krz.mazecreate结束后开始 krz.startcreatemap
*
*
* 注意:一般只用于一个工程一类模板(比如模板全是20*20的,图块全是2),如果有多个不同种
* 比如一种模板是20*20 另一种是10*10 则不能同时用于随机地图生成(他们无法拼接在一块,
* 就是最后的rate必须是0并且krz.mazecreate时他的x y 算上模板大小一定要>=生成地图大小。
* 比如krz.mazecreate(9, 9,.....)模板是10*10的,krz.startcreatemap则必须<=100
*
* 对了krz.mazecreate(x,y ... ... 是从0开始,所以比如(4,4,0,0,4,4... ...
* 生成5*5(模板),初始地点左上角,终点右下角。
*
*
*
* 新增功能:如果 , road1,使用,'2|3|4',则在使用时根据权重随机使用其中一个模板
* 目前对所有的迷宫创造都有效。
*
* 关于权重:在地图备注里写下一个数字即可,如果是0则不会出现在随机模板里但可以强制图块
* 来使它出现。
* 由于这个是简易的随机地图,所以暂不支持不同规格的模板设置,所以所有模板设为一个长宽
*
* 现在可以设置创造的目标地图的背景音乐战斗背景等,就直接在那个地图设置就行了
*
* 在目标地图,$gameSelfSwitches.clearmap();即可清除所有事件的独立开关已达到事件
* 重置。
*
*正常情况下,除了起点和终点,其他的房间均不会出现有路通道另一个房间的墙壁上,
*只要保证'1|2|3'这些替换模板均为一个方向,并且后面的rate=0.0。由于范例用的是四方向
*可通行模板所以会出现进入墙壁的情况。
*由于起点终点需要设置上下楼梯(例如),所以插件内指定为四方向可通行,如果需要解决或者
*修改起点终点的通行问题(比如从四方向改成二方向通行),在764~768行附近修改
*(krz.mg[y_start][x_start][1]=1与krz.mg[y_end][x_end][1]=1,修改1为0则不可通行,1234为各个方向)。
*推荐配合yep的区域限制进入来制作墙壁,也可以不做墙壁用这个作为隐形墙壁来使用,
*也能每个模板均为四方向可通行地形加指定通道被某物阻挡来完成。(需要自己来设置)
*
*
*范例:
*krz.PreloadedMaps[218] = null; ///218号为迷宫地图id
*krz.mazecreate3(Math.min(4+$gameVariables._data[70],15),Math.min(4+$gameVariables._data[70],15),0,0,4+$gameVariables._data[70],4+$gameVariables._data[70],148,147,146 ,208,150,149,211,210,209, 212,213,217,215,216,214,148,219,242,0.0,0.35);
* ///根据变量70来设计迷宫大小
*krz.restrictmap(0,0,148);///强制初始点为148号模板
*krz.loadMapData(218);///加载218号迷宫地图防止报错
* 事件等待60帧,防止加载还没结束
*krz.startcreatemap(50+10*$gameVariables._data[70],50+10*$gameVariables._data[70],218)///生成迷宫并储存在data文件夹下
*
* =============================================================================
* ============================================================================
* Changelog
* ============================================================================
*
Version 0.30:
- 修改部分说明。
Version 0.295:
- 为循环加入了safe防止死循环。
Version 0.29:
- 起点终点附近房间自动打开。
Version 0.28:
- 增加了房间式的迷宫。
Version 0.25:
- 修复多个不同规格模板时出现的bug。
Version 0.235:
- 现在可以按照目标图块的图块设定来设置图块,并且优化了说明。
Version 0.23:
- 修复endroom的小bug。
Version 0.22:
- 新增一个清除地图事件独立开关功能。
Version 0.20:
- 可以指定模板ID
Version 0.18:
- 现在可以对同一类型路面随机模板了(迷宫创造功能)
Version 0.17:
- 完成两种迷宫创造
Version 0.15:
- 完成迷宫创造
Version 0.10:
- 完成主体的随机图块
额外说明:
迷宫生成中第一个效果一般般,会有明显的一条通路(如果图块数量够大)
第二个属于更加自然复杂正常的迷宫生成
7┌8┬9┐
4├5┼6┤
1└2┴3┘
这个指的是通道方向,相当于小键盘:7 8 9 4 5 6 1 2 3 垂直 水平 上单 右单 下单 左单
krz.mazecreate2(x, y, x_start, y_start, x_end, y_end, road1,road2,road3,road4,road5,road6,road7,road8,road9,road10,road11, road100, road20, road30, road40, start_room, end_room, rate)
最后一个rate不建议使用,因为有可能让迷宫无法走通,但是可以通过强制图块设定来让他绝对有一个通路
上文中提到的'1|2|3'可以让,比如都是水平一条路,有三种可能的模板,比如第一条是啥也没有,第二条有个怪挡路,第三个路上可能有宝箱
关于 范例:
新建工程,将范例文件放入替换
范例中,上头的老头点一下生成迷宫,再点一下进入迷宫(如果当时编辑器打开的需要重启(不保存)再打开才能看见迷宫)
上面的鬼魂是第一种迷宫生成,右侧的事第二种迷宫生成
注意:
模板必须是同一大小,迷宫生成是从0~x开始计算的大小,所以左上角是0,0 ,xy的大小比如实际5*5,输入4,4(这个指的模板的数量)
需要注意大小,尽量生成的迷宫不要大于编辑器限制。
如果迷宫生成要求地图过大,可能会卡住几秒钟,这是正常的,如果半分钟不动就是死循环了。
由于本插件是群员要求,目前自己用不上所以这好几个月应该不更新,除非有bug。
第二种更适合迷宫制造,第一种会有大部分道路随机而非迷宫路线设置,直接随机创造则全随机
关于范例:老头是创建迷宫,右侧为第二种迷宫设计,上为第一种迷宫设计。
一般是右侧点一下再点一下老头,也可以放在一起使用。
对于问到的用法,可以设置三张地图,一张初始地图,两张迷宫用地图(模板另算)
初始地图加载下一张迷宫地图,终点模板内放置一个事件:加载下一张地图并且前往起点
新增范例:218为目标迷宫,此事件放在218号地图内
$gameSelfSwitches.clearmap();
krz.setupcreatemap();
$gameMap.clearshops()
krz.PreloadedMaps[218] = null;
krz.loadMapData(218);
krz.mazecreate3(Math.min(4+$gameVariables._data[70],15),Math.min(4+$gameVariables._data[70],15),0,0,Math.min(4+$gameVariables._data[70],15),Math.min(4+$gameVariables._data[70],15),148,147,146 ,208,150,149,211,210,209, 212,213,217,215,216,214,148,219,242,0.0,0.25);
krz.restrictmap(0,0,148);
最后那个0.25是为了让迷宫不止有一条路,大小是根据变量70来的
清理事件以防没删干净
$gameMap._events = []
if($gameSystem._events) $gameSystem._events[$gameMap._mapId] = []
具体看下面截图
结束后进入一个小房间缓冲一下,然后再进218新生成的地图
图片演示:
|
评分
-
查看全部评分
|