Project1

标题: 如何获得含有某字符串的事件ID或当前地图内的事件数量? [打印本页]

作者: 黄亦天    时间: 2011-4-16 01:55
标题: 如何获得含有某字符串的事件ID或当前地图内的事件数量?
http://rpg.blue/forum.php?mod=vi ... =%E6%B3%A8%E9%87%8A
我使用了这个方法来判断事件中是否含有某字符串
但是我想要获取含有这个字符串的事件的ID
应该怎么做?

另外
如何获得当前地图内的事件数量?dsu_plus_rewardpost_czw
作者: 蕾米莉亚·斯卡雷特    时间: 2011-4-16 07:42
  1. have_id = 0
  2. $game_map.event.each do |key, value|
  3.    next unless value.list
  4.    if value.list.parameters[0] == ["就是咱"]
  5.       have_id = key
  6.       break
  7.    end
  8. end
复制代码
have_id 就是有包含某字符串的事件 ID

总的事件数量是:
$game_map.event.size

未测试

作者: 黄亦天    时间: 2011-4-16 18:15
回复 蕾米莉亚·斯卡雷特 的帖子

唔……
果然还是有些问题呢
events少了个s,list需要换成list[0]什么的……

因为要放在公共事件里判定全部地图事件,而这个方法只能判断当前的事件……
所以要用到values方法的说……
不过弄了半天也没弄出个所以然,于是就换了一个方法……
  1. for event in 1..$game_map.events.size
  2.   next unless $game_map.events[event].list
  3.   for i in 0...$game_map.events[event].list.size
  4.     if $game_map.events[event].list[i].parameters[0].to_s.include?("敌人")
  5.       $have_id = event
  6.       $game_temp.common_event_id = 3
  7.     end
  8.   end
  9. end
复制代码
如果换成这样,运行效率和values方法相比有没有太大的差别?
作者: 蕾米莉亚·斯卡雷特    时间: 2011-4-16 18:50
差不多. 咱不知道你说的是公共事件什么呢.  另外那个咱的那个脚本不是成熟的.

个人感觉使用 each 来遍历效果会高很多.
作者: 黄亦天    时间: 2011-4-16 19:04
回复 蕾米莉亚·斯卡雷特 的帖子

其实在做事件脚本ARPG
为了判定哪些事件是“敌人”,而执行装有这个脚本的公共事件而已

PS:其实不熟悉 each……
所以总是在用for in ……
作者: 蕾米莉亚·斯卡雷特    时间: 2011-4-16 19:06
本帖最后由 蕾米莉亚·斯卡雷特 于 2011-4-16 19:08 编辑

$game_map.events.each do |key, value|
   next unless value.list
   value.list.each do |data|
    if data.parameters[0].to_s.include?("敌人")
      $have_id = key
      $game_temp.common_event_id = 3
    end
  end
end

不知道可不可以就是了~~~
作者: 黄亦天    时间: 2011-4-16 19:31
回复 蕾米莉亚·斯卡雷特 的帖子

其实我弄成这样了……
  1. (1..$game_map.events.size).each do |event|
  2.   next unless $game_map.events[event].list
  3.   (0...$game_map.events[event].list.size).each do |i|
  4.     if $game_map.events[event].list[i].parameters[0].to_s.include?("敌人")
  5.       $have_id = event
  6.       $game_temp.common_event_id = 3
  7.     end
  8.   end
  9. end
复制代码
为了防止眼花缭乱,以至于各种错误……
于是把ID和事件分开了




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