Project1

标题: 如何让事件碰到主角执行命令 [打印本页]

作者: UU_sky    时间: 2013-2-17 20:44
标题: 如何让事件碰到主角执行命令
如何让事件碰到主角执行命令,我设置了玩家接触执行命令,但是必须要玩家触碰,我想让事件触碰主角执行命令怎么弄,新人表示没钱
作者: 紫英晓狼1130    时间: 2013-2-17 21:23
设置路线为角色,它就会向角色走,不过可以躲过
作者: UU_sky    时间: 2013-2-17 22:10
我要的是固定的路线
作者: 945127391    时间: 2013-2-17 22:47
第一步,在脚本编辑器main之前插入以下脚本:
  1. class Game_Map
  2.   #----------------------------------------------------------------------------
  3.   # * 事件-角色碰撞判断
  4.   #----------------------------------------------------------------------------
  5.   def event_player_collide(event_id)
  6.     return true if @events[event_id].x == $game_player.x - 1 and @events[event_id].y == $game_player.y # 左侧
  7.     return true if @events[event_id].x == $game_player.x + 1 and @events[event_id].y == $game_player.y # 右侧
  8.     return true if @events[event_id].x == $game_player.x and @events[event_id].y == $game_player.y - 1 # 上方
  9.     return true if @events[event_id].x == $game_player.x and @events[event_id].y == $game_player.y + 1 # 下方
  10.     return false
  11.   end
  12. end
复制代码
第二步:在 事件->条件分歧->脚本 中输入:
  1. $game_map.event_player_collide(@event_id)
复制代码
然后和平常一样用就行了。
作者: UU_sky    时间: 2013-2-17 22:54
945127391 发表于 2013-2-17 22:47
第一步,在脚本编辑器main之前插入以下脚本:第二步:在 事件->条件分歧->脚本 中输入:然后和平常一样用就 ...

太谢谢了
作者: UU_sky    时间: 2013-2-17 23:04
945127391 发表于 2013-2-17 22:47
第一步,在脚本编辑器main之前插入以下脚本:第二步:在 事件->条件分歧->脚本 中输入:然后和平常一样用就 ...

我在分支条件脚本中输入了,为什么还是不行
作者: UU_sky    时间: 2013-2-17 23:10
UU_sky 发表于 2013-2-17 23:04
我在分支条件脚本中输入了,为什么还是不行

知道了。。。
作者: UU_sky    时间: 2013-2-17 23:13
UU_sky 发表于 2013-2-17 23:04
我在分支条件脚本中输入了,为什么还是不行

不过进入他自定义移动过的位置就会触发
作者: UU_sky    时间: 2013-2-17 23:16
945127391 发表于 2013-2-17 22:47
第一步,在脚本编辑器main之前插入以下脚本:第二步:在 事件->条件分歧->脚本 中输入:然后和平常一样用就 ...

进可是进入事件3x3范围内就触发了呀
作者: 945127391    时间: 2013-2-17 23:20
UU_sky 发表于 2013-2-17 23:16
进可是进入事件3x3范围内就触发了呀

我没听懂……请说清楚一点
作者: UU_sky    时间: 2013-2-17 23:22
UU_sky 发表于 2013-2-17 23:16
进可是进入事件3x3范围内就触发了呀

我已经解决了,谢谢你了
作者: UU_sky    时间: 2013-2-17 23:24
945127391 发表于 2013-2-17 23:20
我没听懂……请说清楚一点

你那样写的话进入事件的3x3范围内就会执行。弄成这样,就是正常范围触碰了
  #----------------------------------------------------------------------------
   # * 事件-角色碰撞判断
  #----------------------------------------------------------------------------
  def event_player_collide(event_id)
    return true if @events[event_id].x == $game_player.x - 0 and @events[event_id].y == $game_player.y # 左侧
    return true if @events[event_id].x == $game_player.x + 0 and @events[event_id].y == $game_player.y # 右侧
    return true if @events[event_id].x == $game_player.x and @events[event_id].y == $game_player.y - 0 # 上方
    return true if @events[event_id].x == $game_player.x and @events[event_id].y == $game_player.y + 0 # 下方
    return false
  end

作者: 945127391    时间: 2013-2-17 23:41
UU_sky 发表于 2013-2-17 23:24
你那样写的话进入事件的3x3范围内就会执行。弄成这样,就是正常范围触碰了
  #------------------------- ...


+0或-0和没加没减有什么区别?
如果是那样的话,我给你发的那个脚本你可以改成:
  1. class Game_Map
  2.   #----------------------------------------------------------------------------
  3.   # * 事件-角色碰撞判断
  4.   #----------------------------------------------------------------------------
  5.   def event_player_collide(event_id)
  6.     return true if @events[event_id].x == $game_player.x and @events[event_id].y == $game_player.y
  7.     return false
  8.   end
  9. end
复制代码
了。





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