Project1

标题: 地图事件库的用法? [打印本页]

作者: sagamore    时间: 2008-11-12 19:58
提示: 作者被禁止或删除 内容自动屏蔽
作者: 雪流星    时间: 2008-11-12 21:14
当前地图就是 $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] }
复制代码


[LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: sagamore    时间: 2008-11-12 21:37
提示: 作者被禁止或删除 内容自动屏蔽
作者: 雪流星    时间: 2008-11-12 22:26
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}
作者: sagamore    时间: 2008-11-12 22:50
提示: 作者被禁止或删除 内容自动屏蔽
作者: 一路一风尘    时间: 2008-11-13 19:03
提示: 作者被禁止或删除 内容自动屏蔽
作者: sagamore    时间: 2008-11-13 22:32
提示: 作者被禁止或删除 内容自动屏蔽




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1