查看: 2123|回复: 5

[已经过期] 线形视野系统 ,怎么让触发开关打开同时显示一动画?

[复制链接]
梦石
0
星屑
50
在线时间
35 小时
注册时间
2008-6-23
回帖
216
发表于 2014-8-19 09:26:22 | 显示全部楼层 |阅读模式

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

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

×
如果打开触发开关之后事件开始接近角色,我希望事件显示完一个动画后才开始接近角色


线形视野系统
http://www.66rpg.com/articles/4854
HзO
梦石
0
星屑
1748
在线时间
485 小时
注册时间
2006-1-7
回帖
996
发表于 2014-8-19 11:33:45 | 显示全部楼层
制作一个自动执行的事件,事件触发条件为 线性视野的开关为 on时
初从文,三年不中;后习武,校场发一矢,中鼓吏,逐之出;遂学医,有所成。自撰一良方,服之,卒。
回复

使用道具 举报

梦石
0
星屑
50
在线时间
35 小时
注册时间
2008-6-23
回帖
216
 楼主| 发表于 2014-8-19 11:44:55 | 显示全部楼层
白鬼 发表于 2014-8-19 11:33
制作一个自动执行的事件,事件触发条件为 线性视野的开关为 on时

这样设置的话如果地图和事件都比较多就很麻烦,能不能在脚本中统一设置?
HзO
回复

使用道具 举报

万兽

梦石
0
星屑
602
在线时间
2271 小时
注册时间
2006-11-4
回帖
4701

贵宾

发表于 2014-8-19 11:55:47 | 显示全部楼层
设置里不是有吗?

# 设置触发确认    $game_map.events[@event_id].le_true = true/false
# 功能:该值表示该NPC是否看见了主角,等价于触发开关,默认为false。

在事件里加上这个的判断:
if $game_map.events[@event_id].le_true == true
播放动画
等待帧数
end
未尝试,不负责。

另外,这个脚本效果其实渣爆了。还不如俺这个渣渣的:http://pan.baidu.com/s/1i3uuyTv
不过没有画视线。

评分

参与人数 1星屑 +100 收起 理由
RyanBern + 100 塞糖

查看全部评分

回复

使用道具 举报

梦石
0
星屑
50
在线时间
35 小时
注册时间
2008-6-23
回帖
216
 楼主| 发表于 2014-8-19 13:50:26 | 显示全部楼层
弗雷德 发表于 2014-8-19 11:55
设置里不是有吗?

# 设置触发确认    $game_map.events[@event_id].le_true = true/false

我希望在脚本中设置,而不是在事件里设置。
我在def see下面添加了一句(红色部分),假设事件1是敌人,当角色接近后事件1确实显示了动画。但是如果在事件1和角色当中加上一个障碍物事件2,虽然角色被障碍物遮住事件1同样会显示动画,我希望事件1没发现角色的时候不要显示动画

  def see
    @le_true = false
    if ($game_player.x-@x).abs<@le_deepness and ($game_player.y-@y).abs<@le_deepness
      difference_x = ($game_player.x - @x).abs
      difference_y = ($game_player.y - @y).abs
      case @direction
      when 2
        return if @le_circle != true and $game_player.y < @y
        unless @le_side and (difference_y == 0 and difference_x == 1)
          return if difference_x.to_f/difference_y > @le_slope
        end
      when 4
        return if @le_circle != true and $game_player.x > @x
        unless @le_side and difference_y == 1 and difference_x == 0
          return if difference_y.to_f/difference_x > @le_slope
        end
      when 6
        return if @le_circle != true and $game_player.x < @x
        unless @le_side and difference_y == 1 and difference_x == 0
          return if difference_y.to_f/difference_x > @le_slope
        end
      else
        return if @le_circle != true and $game_player.y > @y
        unless @le_side and difference_y == 0 and difference_x == 1
          return if difference_x.to_f/difference_y > @le_slope
        end
      end
      if @le_mode == 0
        return if (difference_x ** 2 + difference_y ** 2) > le_deepness ** 2
      end
      @le_true = scan_line
      $game_map.events[@id].animation_id = 98
      if @le_ss and @le_true !=true
        @le_trace[0,0] = -1
      end
    end
  end
HзO
回复

使用道具 举报

万兽

梦石
0
星屑
602
在线时间
2271 小时
注册时间
2006-11-4
回帖
4701

贵宾

发表于 2014-8-19 14:14:57 | 显示全部楼层
我记得event类下好像没有动画的函数,把这些东西写进character里吧,直接写event是不生效的。
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部