| 赞 | 2 |
| VIP | |
| 好人卡 | |
| 积分 | 18 |
| 经验 | |
| 最后登录 | 2026-5-24 |
| 在线时间 | 1313 小时 |
- 梦石
- 0
- 星屑
- 1788
- 在线时间
- 1313 小时
- 注册时间
- 2012-8-4
- 回帖
- 724
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有账号?注册会员
×
本帖最后由 夜狠简单 于 2016-2-22 12:43 编辑
脚本里有注释
首先是需要替换的图块文件夹需要准备的事
[fold]
[/fold]
然后是通行度文件夹,里面的数据不满意的可以删掉
[fold]
[/fold]
打开编辑器
[fold]
[/fold]
观察一下A2图块区就行
继续
[fold]
这里改为了,更换图块的地图必须用新的通行度,
而不更换的地图如果需要有自己的通行度,就添加
进$Tingzhitxd数组里,否则使用默认的通行度
这里建议先弄原来图块的通行度保存[/fold]
因为脚本里地图2,3替换了A2图块,所以测试游戏的时候,会提醒更换了文件
[fold]
[/fold]
存档,并看见游戏里A2图块区里面已经变了
[fold]
[/fold]
关掉游戏,地图来回切换几次
[fold]
编辑器内的A2图块区变了[/fold]
然后之前脚本里也添加了6号地图有自己的通行度,所以在6号地图上初次测试运行的时候会提示
[fold]
[/fold]
当然,如果我之前做了个游戏,现在想添加新图块做几张新地图更新进去,但是以前的通行度怎么办呢?
那么用下面这个脚本,并且按照上面说的那样准备好素材。准备好素材。准备好素材!尤其是TF文件夹一定要有
然后先建立一张新地图(用原来游戏里的原图块建立的地图。复制一张地图也行,地图名字改为 默认地图通行度)
然后将主角初始位置放在这张地图上,然后运行,生成默认地图通行度。
之后再脚本里添加打算改动的地图通行度ID就行了。
并不知道这个的兼容性如何,脚本应该还能简化,不过应该还是能用的。
[fold=地图处理初始化]#==============================================================================
# ■ Game_Map
#------------------------------------------------------------------------------
# 处理地图的类。包含卷动以及可以通行的判断功能。本类的实例请参考 $game_map 。
#==============================================================================
class Game_Map
COPYF = Win32API.new("kernel32","CopyFileA","pp","l")
def copyfile(a,b)
a = COPYF.call(a,b)
return a
end
def mkdir(n)
return if FileTest.exist?(n)
Dir.mkdir(n)
end
#############################################################
#--------------------------------------------------------------------------
# ● 设置
# map_id : 地图 ID
#--------------------------------------------------------------------------
def setup(map_id)
@map_id = map_id
#把格式化的数据写入某个字符串
@map = load_data(sprintf("Data/Map%03d.rvdata", @map_id))
@display_x = 0
@display_y = 0
#需要更新图块的地图数组
$TileA1=[]
#2号3地图更换图块A2
#~ $TileA2=[2,3]
$TileA2=[]
$TileA3=[]
$TileA3_1=[]
$TileA4=[]
$TileA5=[]
$TileB=[]
$TileC=[]
$TileD=[]
=begin
停止更新地图的通行度,编辑的时候,把主角放到地图上,并将对应的地图IDn
写入$Tingzhitxd[n]即可保存地图的通行度设置,如果想改动删掉该地图的通行度数据
即可。
=end
#允许生成通行度的地图
$Tingzhitxd=[]
$Tingzhitxd=$Tingzhitxd+$TileA1+$TileA2+$TileA3+$TileA3_1+
$TileA4+$TileA5+$TileB+$TileC+$TileD
#添加地图ID 用 $Tingzhitxd.push 如地图5,6 $Tingzhitxd.push 5,6
#$Tingzhitxd.push 1,6 这里添加的话,可以用循环语句来添加啊
#移除重复的地图ID
$Tingzhitxd=$Tingzhitxd.uniq
mname = load_data("Data/MapInfos.rvdata") #读取地图名文件
mname= mname[map_id].name
if mname=="默认地图通行度"or $Tingzhitxd.include?(map_id)!=true
name = "Mappassages/default/"
mkdir name.to_s if $TEST and mname=="默认地图通行度" and FileTest.exist?(name+"System.rvdata") !=true
p "默认地图通行度已生成" if $TEST and mname=="默认地图通行度" and FileTest.exist?(name+"System.rvdata") !=true
copyfile "Data/System.rvdata" , name+"System.rvdata" if $TEST and mname=="默认地图通行度" and FileTest.exist?(name+"System.rvdata") !=true
$data_system = load_data("Data/System.rvdata")
$data_system.passages = load_data(name+"System.rvdata").passages if FileTest.exist?(name+"System.rvdata") ==true
@passages = $data_system.passages
else
name = "Mappassages/Map_#{map_id}/"
#生成通行度
if $Tingzhitxd.include?(map_id)==true and FileTest.exist?(name+"System.rvdata") !=true
mkdir name.to_s if $TEST
copyfile "Data/System.rvdata" , name+"System.rvdata" if $TEST
$game_temp.common_event_id =1 if $TEST #调用公共事件1可修改
end
#读取通行度
$data_system = load_data("Data/System.rvdata")
$data_system.passages = load_data(name+"System.rvdata").passages if FileTest.exist?(name+"System.rvdata") ==true
@passages = $data_system.passages
end
#更换文件,请将文件放在Graphics/System下,文件名可修改
############################################################
map_id=$game_map.map_id
if $TileA1.include?(map_id)==true
if FileTest.exist?("Graphics/System/TileA1-1.png") ==true
File.rename("Graphics/System/TileA1.png", "Graphics/System/TileA1-A.png")
File.rename("Graphics/System/TileA1-1.png", "Graphics/System/TileA1.png")
p "地图图块A1更新完毕,如后面不再提醒即可重新打开RPG VX编辑器读取新地图图块" if $TEST
end
else
if FileTest.exist?("Graphics/System/TileA1-A.png") ==true
File.rename("Graphics/System/TileA1.png", "Graphics/System/TileA1-1.png")
File.rename("Graphics/System/TileA1-A.png", "Graphics/System/TileA1.png")
p "地图图块A1更新完毕,如后面不再提醒即可重新打开RPG VX编辑器读取新地图图块" if $TEST
end
end
############################################################
if $TileA2.include?(map_id)==true
if FileTest.exist?("Graphics/System/TileA2-1.png") ==true
File.rename("Graphics/System/TileA2.png", "Graphics/System/TileA2-A.png")
File.rename("Graphics/System/TileA2-1.png", "Graphics/System/TileA2.png")
p "地图图块A2更新完毕,如后面不再提醒即可重新打开RPG VX编辑器读取新地图图块" if $TEST
end
else
if FileTest.exist?("Graphics/System/TileA2-A.png") ==true
File.rename("Graphics/System/TileA2.png", "Graphics/System/TileA2-1.png")
File.rename("Graphics/System/TileA2-A.png", "Graphics/System/TileA2.png")
p "地图图块A2更新完毕,如后面不再提醒即可重新打开RPG VX编辑器读取新地图图块" if $TEST
end
end
###########################################################
if $TileA3.include?(map_id)==true
if FileTest.exist?("Graphics/System/TileA3-1.png") ==true
File.rename("Graphics/System/TileA3.png", "Graphics/System/TileA3-A.png")
File.rename("Graphics/System/TileA3-1.png", "Graphics/System/TileA3.png")
p "地图图块A3更新完毕,如后面不再提醒即可重新打开RPG VX编辑器读取新地图图块" if $TEST
end
else
if FileTest.exist?("Graphics/System/TileA3-A.png") ==true
File.rename("Graphics/System/TileA3.png", "Graphics/System/TileA3-1.png")
File.rename("Graphics/System/TileA3-A.png", "Graphics/System/TileA3.png")
p "地图图块A3更新完毕,如后面不再提醒即可重新打开RPG VX编辑器读取新地图图块" if $TEST
end
end
#########################################################
if $TileA3_1.include?(map_id)==true
if FileTest.exist?("Graphics/System/TileA3-2.png") ==true
File.rename("Graphics/System/TileA3.png", "Graphics/System/TileA3-B.png")
File.rename("Graphics/System/TileA3-2.png", "Graphics/System/TileA3.png")
p "地图图块A3更新完毕,如后面不再提醒即可重新打开RPG VX编辑器读取新地图图块" if $TEST
end
#~ @tilemap.bitmaps[0] = Cache.system("TileA-1")
else
if FileTest.exist?("Graphics/System/TileA3-B.png") ==true
File.rename("Graphics/System/TileA3.png", "Graphics/System/TileA3-2.png")
File.rename("Graphics/System/TileA3-B.png", "Graphics/System/TileA3.png")
p "地图图块A3更新完毕,如后面不再提醒即可重新打开RPG VX编辑器读取新地图图块" if $TEST
end
end
############################################################
if $TileA4.include?(map_id)==true
if FileTest.exist?("Graphics/System/TileA4-1.png") ==true
File.rename("Graphics/System/TileA4.png", "Graphics/System/TileA4-A.png")
File.rename("Graphics/System/TileA4-1.png", "Graphics/System/TileA4.png")
p "地图图块A4更新完毕,如后面不再提醒即可重新打开RPG VX编辑器读取新地图图块" if $TEST
end
else
if FileTest.exist?("Graphics/System/TileA4-A.png") ==true
File.rename("Graphics/System/TileA4.png", "Graphics/System/TileA4-1.png")
File.rename("Graphics/System/TileA4-A.png", "Graphics/System/TileA4.png")
p "地图图块A4更新完毕,如后面不再提醒即可重新打开RPG VX编辑器读取新地图图块" if $TEST
end
end
############################################################
if $TileA5.include?(map_id)==true
if FileTest.exist?("Graphics/System/TileA5-1.png") ==true
File.rename("Graphics/System/TileA5.png", "Graphics/System/TileA5-A.png")
File.rename("Graphics/System/TileA5-1.png", "Graphics/System/TileA5.png")
p "地图图块A5更新完毕,如后面不再提醒即可重新打开RPG VX编辑器读取新地图图块" if $TEST
end
else
if FileTest.exist?("Graphics/System/TileA5-A.png") ==true
File.rename("Graphics/System/TileA5.png", "Graphics/System/TileA5-1.png")
File.rename("Graphics/System/TileA5-A.png", "Graphics/System/TileA5.png")
p "地图图块A5更新完毕,如后面不再提醒即可重新打开RPG VX编辑器读取新地图图块" if $TEST
end
end
#############################################################
if $TileB.include?(map_id)==true
if FileTest.exist?("Graphics/System/TileB-1.png") ==true
File.rename("Graphics/System/TileB.png", "Graphics/System/TileB-A.png")
File.rename("Graphics/System/TileB-1.png", "Graphics/System/TileB.png")
p "地图图块B更新完毕,如后面不再提醒即可重新打开RPG VX编辑器读取新地图图块" if $TEST
end
#~ @tilemap.bitmaps[0] = Cache.system("TileA-1")
else
if FileTest.exist?("Graphics/System/TileB-A.png") ==true
File.rename("Graphics/System/TileB.png", "Graphics/System/TileB-1.png")
File.rename("Graphics/System/TileB-A.png", "Graphics/System/TileB.png")
p "地图图块B更新完毕,如后面不再提醒即可重新打开RPG VX编辑器读取新地图图块" if $TEST
end
end
#############################################################
if $TileC.include?(map_id)==true
if FileTest.exist?("Graphics/System/TileC-1.png") ==true
File.rename("Graphics/System/TileC.png", "Graphics/System/TileC-A.png")
File.rename("Graphics/System/TileC-1.png", "Graphics/System/TileC.png")
p "地图图块C更新完毕,如后面不再提醒即可重新打开RPG VX编辑器读取新地图图块" if $TEST
end
#~ @tilemap.bitmaps[0] = Cache.system("TileA-1")
else
if FileTest.exist?("Graphics/System/TileC-A.png") ==true
File.rename("Graphics/System/TileC.png", "Graphics/System/TileC-1.png")
File.rename("Graphics/System/TileC-A.png", "Graphics/System/TileC.png")
p "地图图块C更新完毕,如后面不再提醒即可重新打开RPG VX编辑器读取新地图图块" if $TEST
end
end
############################################################
if $TileD.include?(map_id)==true
if FileTest.exist?("Graphics/System/TileD-1.png") ==true
File.rename("Graphics/System/TileD.png", "Graphics/System/TileD-A.png")
File.rename("Graphics/System/TileD-1.png", "Graphics/System/TileD.png")
p "地图图块D更新完毕,如后面不再提醒即可重新打开RPG VX编辑器读取新地图图块" if $TEST
end
else
if FileTest.exist?("Graphics/System/TileD-A.png") ==true
File.rename("Graphics/System/TileD.png", "Graphics/System/TileD-1.png")
File.rename("Graphics/System/TileD-A.png", "Graphics/System/TileD.png")
p "地图图块D更新完毕,如后面不再提醒即可重新打开RPG VX编辑器读取新地图图块" if $TEST
end
end
############################################################
referesh_vehicles
setup_events
setup_scroll
setup_parallax
@need_refresh = false
end
end
class Spriteset_Map
def create_tilemap
@tilemap = Tilemap.new(@viewport1)
#需要更新图块的地图数组
$TileA1=[]
#2号3地图更换图块A2
#~ $TileA2=[2,3]
$TileA2=[]
$TileA3=[]
$TileA3_1=[]
$TileA4=[]
$TileA5=[]
$TileB=[]
$TileC=[]
$TileD=[]
=begin
备份原系统图块文件到文件夹System/TF内
如文件System/TF内含有"TileC"则可以注释掉
@tilemap.bitmaps[6] = Cache.system("TileC")
改为
@tilemap.bitmaps[6] = Cache.system("TF/TileC")
=end
@tilemap.bitmaps[0] = Cache.system("TileA1")
#~@tilemap.bitmaps[1] = Cache.system("TileA2")
@tilemap.bitmaps[1] = Cache.system("TF/TileA2")
@tilemap.bitmaps[2] = Cache.system("TileA3")
@tilemap.bitmaps[3] = Cache.system("TileA4")
@tilemap.bitmaps[4] = Cache.system("TileA5")
@tilemap.bitmaps[5] = Cache.system("TileB")
@tilemap.bitmaps[6] = Cache.system("TileC")
@tilemap.bitmaps[7] = Cache.system("TileD")
#获取地图ID
map_id = $game_map.map_id
#这里是读取特殊地图用的图块
#读取System/TF-文件夹内的,用到的自己扩展就行
#如用到C图块就加一句 @tilemap.bitmaps[6] = Cache.system("TF-/TileC")
#~ @tilemap.bitmaps[0] = Cache.system("TF-/TileA1-1") if $TileA1.include?(map_id)==true
@tilemap.bitmaps[1] = Cache.system("TF-/TileA2-1") if $TileA2.include?(map_id)==true
#~ @tilemap.bitmaps[2] = Cache.system("TF-/TileA3-1") if $TileA3.include?(map_id)==true
@tilemap.bitmaps[8] = Cache.system("TileE")
@tilemap.map_data = $game_map.data
@tilemap.passages = $game_map.passages
#ta_map[13]s.passages
end
end[/fold] |
|