本帖最后由 moy 于 2014-5-16 15:26 编辑
#============================================================================== # ★ Custom Adventure 区域随机事件定位 # -- Last Updated: 2014.5.16 # -- by Moy # -- 转载请保留以上信息 #============================================================================== #============================================================================== # ■ Game_Map #============================================================================== class Game_Map #-------------------------------------------------------------------------- # ● 获取区域内的随机(空闲)坐标 #-------------------------------------------------------------------------- def get_region_xy(region) @region_map = Hash.new if @region_map.nil? if @region_map[region].nil? @region_map[region] = Array.new index = 0 for x in 0..width for y in 0..height if region_id(x,y) == region @region_map[region][index]= [x,y] index += 1 end end end else index = @region_map[region].length end if index > 0 x,y = @region_map[region][rand(index)] return x,y if events_xy(x, y).empty? end return -1,-1 end end #============================================================================== # ■ Game_Interpreter #============================================================================== class Game_Interpreter #-------------------------------------------------------------------------- # ● 将本事件放入某区域的随机位置上 #-------------------------------------------------------------------------- def put_in_region(region) x,y = $game_map.get_region_xy(region) if x != -1 && y != -1 get_character(0).moveto(x,y) end end end
#==============================================================================
# ★ Custom Adventure 区域随机事件定位
# -- Last Updated: 2014.5.16
# -- by Moy
# -- 转载请保留以上信息
#==============================================================================
#==============================================================================
# ■ Game_Map
#==============================================================================
class Game_Map
#--------------------------------------------------------------------------
# ● 获取区域内的随机(空闲)坐标
#--------------------------------------------------------------------------
def get_region_xy(region)
@region_map = Hash.new if @region_map.nil?
if @region_map[region].nil?
@region_map[region] = Array.new
index = 0
for x in 0..width
for y in 0..height
if region_id(x,y) == region
@region_map[region][index]= [x,y]
index += 1
end
end
end
else
index = @region_map[region].length
end
if index > 0
x,y = @region_map[region][rand(index)]
return x,y if events_xy(x, y).empty?
end
return -1,-1
end
end
#==============================================================================
# ■ Game_Interpreter
#==============================================================================
class Game_Interpreter
#--------------------------------------------------------------------------
# ● 将本事件放入某区域的随机位置上
#--------------------------------------------------------------------------
def put_in_region(region)
x,y = $game_map.get_region_xy(region)
if x != -1 && y != -1
get_character(0).moveto(x,y)
end
end
end
在地图上划定区域后,在事件的自动运行页中加入脚本put_in_region(n)就可以,n是区域的编号
正好自己的坑也要用到,就贴出来了。不过我只是初步测试了一下,有没有隐患我不知道 |