幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2096|回复: 2

[有回应] 怎么感应NPC执行事件?

[复制链接]

7

主题

20

帖子

179

积分

③业余

积分
179
发表于 2010-1-25 11:13:30 | 显示全部楼层 |阅读模式
我想让 1号NPC 随机走动 一碰到2号NPC  1号就说话。
                                 
                                  有办法吗?
回复

使用道具 举报

15

主题

271

帖子

2198

积分

⑥精研

我要疯狂积累活跃度!

积分
2198
QQ
发表于 2010-1-25 12:42:53 | 显示全部楼层
1,控制变量监视事件坐标,
2,脚本监视移动位置。
3,其他。。。
基本上就是坐标和前防碰撞判定,用纯事件应该可以解决。。。
紫月光流奈河畔, 孤影独行笑苍天。 酆都倒比人间好, 从此慕鬼不羡仙!
回复 支持 反对

使用道具 举报

0

主题

42

帖子

347

积分

④见习

积分
347
发表于 2010-1-25 12:50:57 | 显示全部楼层
修改脚本 把事件当成主角来解决这问题
如果用LS的办法来解决的话除非你NPC遇到对话就一二个如果多的话用LS的方法就不可行了
修改以下@trigger == 2 and x == $game_player.x and y == $game_player.y
这句。也可以在这句下面加上语句
#--------------------------------------------------------------------------
  # ● 接触事件启动判定
  #--------------------------------------------------------------------------
  def check_event_trigger_touch(x, y)
    # 事件执行中的情况下
    if $game_system.map_interpreter.running?
      return
    end
    # 目标为 [与事件接触] 以及和主角坐标一致的情况下
    if @trigger == 2 and x == $game_player.x and y == $game_player.y
      # 除跳跃中以外的情况、启动判定就是正面的事件
      if not jumping? and not over_trigger?
        start
      end
    end
  end
  #--------------------------------------------------------------------------
  # ● 自动事件启动判定
  #--------------------------------------------------------------------------
  def check_event_trigger_auto
    # 目标为 [与事件接触] 以及和主角坐标一致的情况下
    if @trigger == 2 and @x == $game_player.x and @y == $game_player.y
      # 除跳跃中以外的情况、启动判定就是同位置的事件
      if not jumping? and over_trigger?
        start
      end
    end
    # 目标是 [自动执行] 的情况下
    if @trigger == 3
      start
    end
  end
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-3-29 02:07 , Processed in 0.019200 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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