设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1330|回复: 1
打印 上一主题 下一主题

[已经解决] 求助,怎么把地图上队友名字的事件带入到变量里

[复制链接]

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

跳转到指定楼层
1
发表于 2016-2-7 22:32:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
本帖最后由 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

评分

参与人数 1星屑 +35 收起 理由
RyanBern + 35 手动认可奖励

查看全部评分

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9397
在线时间
2748 小时
注册时间
2008-9-5
帖子
3543

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

2
发表于 2016-2-8 23:29:51 | 只看该作者
  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是不能用的…………

点评

名字应该可以用那个= $game_party.actors.collect{|actor| actor.name}  发表于 2016-2-9 00:04
这个是module里的内容。那个name定义我也加了的好像没效果  发表于 2016-2-9 00:03
定义name的办法去查私信,我给你发过的。  发表于 2016-2-8 23:57
不行,name没有定义  发表于 2016-2-8 23:56
$game_map.events.values.select{|ev| ev.event.name == "party_id"}这段是直接得到引号里面的名字的事件,这个试过了,里面写上敌人名字就能得到所有敌人事件  发表于 2016-2-8 23:44

评分

参与人数 1梦石 +1 收起 理由
RyanBern + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-9-22 19:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表