赞 | 12 |
VIP | 107 |
好人卡 | 6 |
积分 | 4 |
经验 | 31122 |
最后登录 | 2024-6-29 |
在线时间 | 1606 小时 |
Lv2.观梦者 傻♂逼
- 梦石
- 0
- 星屑
- 374
- 在线时间
- 1606 小时
- 注册时间
- 2007-3-13
- 帖子
- 6562
 
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
2008年6.1更新发现:
RMXP的数据库实际支持宽度,高度〉500的地图,只是编辑器作了限制。
使用newmap可以建立宽度,高度〉500的地图
但是系统自动为他们涂上背景,要循环500*500次,所以很正常的失败了 {/hx}
2008年6.1再次更新
to:暴风龙,错误修正了 {/cy}
范例更新:
http://rpg.blue/upload_program/files/Save_Map!Yes!_92755880.rar
本脚本修改了
Scene_Load
Scene_Save
Scene_Title
Game_Map
冲突较大
如:
四处留情(一个改事件,一个改地图,能不冲突吗?)
股票(债券系统)
(涉及
Scene_Load
Scene_Save
修改)
本脚本用处:
比如您想在地图的2*2到5*5的地方造一个房子,一般只能用事件.很卡.
使用这个脚本只需要:
edit(mapid,x,y,lv,dat)
就可以修改任意地图,id的任意层的地图元件。
使用本脚本可以延伸出事件的修改//
使用方法:
edit(mapid,x,y,lv,dat)
实现:修改某个地图的某一格
使用:
mapid:要修改的地图id
x,y,lv:要修改的x,y,层(0、1、2)
dat:要替换的内容,不支持自动元件,从384开始
editbymap(mapid,x,y,mapid1,x1,y1,w1,h1)
实现:edit功能只能一格一格修改,不方便。
这个程序可以从其他地图拷贝一块到当前地图。
使用:
mapid:要修改的地图id
x,y:要修改的地图的x,y
mapid1:地图库
x1,y1,w1,h1:从x1,y1开始复制大小为w1,h1的地图元件到mapid的x,y
newmap(h,w,tileset)
实现:创建新地图
使用:
h,w:新地图大小
tileset:地图所使用图块的 ID。
脚本内容:
复制代码 - def edit(mapid,x,y,lv,dat) #lv=0,1,2
- $mapdat[mapid-1].data[x,y,lv] = dat
- upmap
- end
- def editbymap(mapid,x,y,mapid1,x1,y1,w1,h1) #lv=0,1,2
- #$mapdat[mapid-1].data[x,y,lv] = dat
- x3 = x
- for y2 in x1..h1+(x1-1)
- for x2 in y1..w1+(y1-1)
- $mapdat[mapid-1].data[x3,y,0] = $mapdat[mapid1-1].data[x2,y2,0]
- $mapdat[mapid-1].data[x3,y,1] = $mapdat[mapid1-1].data[x2,y2,1]
- $mapdat[mapid-1].data[x3,y,2] = $mapdat[mapid1-1].data[x2,y2,2]
- x3 = x3+1
- end
- y = y+1
- x3 = x
- end
- upmap
- end
- def newmap(h,w,tileset)
- $mapdat.push(RPG::Map.new(w,h))
- # $mapdat.height = h
- # $mapdat.width = w
- # $mapdat.data = Table.new(h,w,3)
- for x in 0..w
- for y in 0..h
- edit($mapdat.size,x,y,0,384)
- end
- end
- return $mapdat.size
- upmap
- end
- def upmap
- $game_map.refresh2
- $game_map.update
- end
复制代码
截图怎么截捏?
使用草原地图时的范例
for i in 0..4
edit(1,2,2+i,1,488+(i*8))
edit(1,3,2+i,1,489+(i*8))
edit(1,4,2+i,1,490+(i*8))
edit(1,5,2+i,1,491+(i*8))
edit(1,6,2+i,1,492+(i*8))
end |
|