Project1

标题: 求助,怎么把地图上队友名字的事件带入到变量里 [打印本页]

作者: yang1zhi    时间: 2016-2-7 22:32
标题: 求助,怎么把地图上队友名字的事件带入到变量里
本帖最后由 yang1zhi 于 2016-2-8 00:20 编辑

地图上的队友名字对应角色库名字。
不过使用了重复角色脚本。
重复角色的队友名字是
      add_actor.party_name = add_actor.name + "_" + party_index.to_s
RUBY 代码复制
  1. class Game_Friend < Game_Event
  2.   alias sn_160131_party_id party_id
  3.   def party_id
  4.     for i in $game_party.actors
  5.       # 改成用队员的队伍序列名字做判定
  6.       if self.name == i.party_name
  7.         return i.index.to_i
  8.         break
  9.       end
  10.     end
  11.   end
  12. end



RUBY 代码复制
  1. duiyou_mingzi = $game_map.events.values.select{|ev| ev.event.name == "party_id"}
  2.      for d in duiyou_mingzi
  3.     #XY坐标差之和
  4.     distance = (d.x - self.x).abs + (d.y - self.y).abs
  5.     enable   = (distance <= @sensor_range)
  6.     key = [$game_map.map_id, self.id, XAS_BA::SENSOR_SELF_SWITCH]
  7.     last_enable = $game_self_switches[key]
  8.     last_enable = false if last_enable == nil
  9.     if enable != last_enable
  10.       $game_self_switches[key] = enable
  11.       $game_map.need_refresh = true
  12.     end
  13.   end
  14.   end
  15. end

作者: cinderelmini    时间: 2016-2-8 23:29
  1. duiyou_mingzi = $game_map.events.values.collect{|ev|
  2. for data_actor in $data_actors
  3. if ev.name.include?(data_actor.name)
  4. ev.party_name
  5. end
  6. end}
  7.      for d in duiyou_mingzi
  8. for event in $game_map.events.values
  9. if event.name == d
  10. t_event = event
  11. break
  12. end
  13. end
  14.     #XY坐标差之和
  15.     distance = (t_event.x - self.x).abs + (t_event.y - self.y).abs
  16.     enable   = (distance <= @sensor_range)
  17.     key = [$game_map.map_id, self.id, XAS_BA::SENSOR_SELF_SWITCH]
  18.     last_enable = $game_self_switches[key]
  19.     last_enable = false if last_enable == nil
  20.     if enable != last_enable
  21.       $game_self_switches[key] = enable
  22.       $game_map.need_refresh = true
  23.     end
  24.   end
  25.   end
  26. end
复制代码
如果队友的事件命名是“数据库角色名_序列号”的话,
就用上面这段……
顺便,
Array.select是选择一个值并返回,
然后,照这个思路,duiyou_mingzi里面全是名字字符,
在下面的.x和.y是不能用的…………




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