查看: 1654|回复: 6

地图事件库的用法?

  [复制链接]
头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-10-26
回帖
111
发表于 2008-11-12 19:58:08 | 显示全部楼层 |阅读模式
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽

天仙

梦石
0
星屑
720
在线时间
184 小时
注册时间
2008-4-15
回帖
4872

贵宾

发表于 2008-11-12 21:14:16 | 显示全部楼层
当前地图就是 $game_map
假设当前地图就是 2 号地图
那麽

map = load_data(sprintf("Data/Map%03d.rvdata", 仓库地图ID))
这句载入仓库地图的内容

event = map.events[N]
这句读取出在仓地图中ID为N的事件

例如:
map = load_data(sprintf("Data/Map%03d.rvdata", 1))
event = map.events[2]
就是从仓库地图(1号地图)读取出第2号事件

所以,要从一号地图读取1~100事件,就要用到循环:

  1. map = load_data(sprintf("Data/Map%03d.rvdata", 1))
  2. temp_events = []
  3. map.events.size.times { |i| event << map.events[i] }
复制代码



系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-10-26
回帖
111
 楼主| 发表于 2008-11-12 21:37:30 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

天仙

梦石
0
星屑
720
在线时间
184 小时
注册时间
2008-4-15
回帖
4872

贵宾

发表于 2008-11-12 22:26:04 | 显示全部楼层
1. 其实不需要去管到底是几号地图
当前地图就是$game_map
所以只要把仓库地图的事件放在当前地图上就行了

2. 地图上的事件是用数组保存的
所以用上面的脚本得到仓库地图中的1~100事件,记录在temp_event当中后
直接用数组的加法加进去就行了

  1. $game_map.events + temp_event
复制代码


不过刚才看了一下脚本
Game_Map的event是唯读的,所以可以把刚才的脚本定义在Game_Mapo里面

  1. class Game_Map
  2.   def add_event(store_map_id)
  3.      map = load_data(sprintf("Data/Map%03d.rvdata", 1))
  4.      temp_events = []
  5.      map.events.size.times { |i| event << map.events[i] }
  6.      @events + temp_event
  7.   end
  8. end
复制代码


试试看,我先睡了{/hx}
VA脚本开工中...
偷窃脚本1.0 - 已完成
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-10-26
回帖
111
 楼主| 发表于 2008-11-12 22:50:30 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-1-5
回帖
696
发表于 2008-11-13 19:03:02 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2008-10-26
回帖
111
 楼主| 发表于 2008-11-13 22:32:14 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部