Project1

标题: 如何 利用 事件名稱(Event Name) 而非 ID 來獲取 其屬性(如X,y,name [打印本页]

作者: ppr2d06a    时间: 2014-8-8 11:07
标题: 如何 利用 事件名稱(Event Name) 而非 ID 來獲取 其屬性(如X,y,name
如題
也就是

除了 $game_map.events[event_id].x
可以 $game_map.events['事件名稱'].x 嗎?

if this is impossible than I will use back my old stupid way which is for loop

thanks for helping
作者: 泉塚四季    时间: 2014-8-8 11:46
事件名称重复了怎么办?
作者: ppr2d06a    时间: 2014-8-8 11:51
泉塚四季 发表于 2014-8-8 11:46
事件名称重复了怎么办?

就是 Crash 吧 沒什麼大不了的
作者: 1003492579    时间: 2014-8-8 11:53
滚一遍事件名称取ID什么的…………反正VA刷处理器够多的了不在乎这点
作者: kuerlulu    时间: 2014-8-8 12:14
  1. $event_name_hash = {}
  2. $game_map.events.to_a.each do |i, e|
  3.   ev = e.instance_variable_get :@event
  4.   $event_name_hash[ev.name] = i
  5. end
复制代码
任何一张地图开始时在事件脚本中运行这段脚本
  1. $game_map.events[$event_name_hash["事件名称"]]
复制代码
然后这样调用
作者: 喵呜喵5    时间: 2014-8-8 13:16
本帖最后由 喵呜喵5 于 2014-8-8 13:28 编辑
  1. class Game_Interpreter
  2.   def m5_match_ev_name(match_name = "m5",map_id = @map_id)
  3.     map = load_data(sprintf("Data/Map%03d.rvdata2", map_id))
  4.     map.events.each_pair {|id,ev| return id if ev.name == match_name}
  5.     0
  6.   end
  7. end
复制代码
使用方法:
  1. m5_match_ev_name("事件的名称",地图的ID)
复制代码
地图ID留空则默认为当前地图




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