查看: 3082|回复: 2

[已经解决] 请问可以设定事件移动到指定的坐标吗?

[复制链接]
梦石
0
星屑
1290
在线时间
52 小时
注册时间
2017-2-2
回帖
25
发表于 2020-5-14 00:14:41 | 显示全部楼层 |阅读模式

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

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

×
RT,当某个事件需要在几个不同的位置之间由玩家选择移动时,虽然也可以固定好移动的路线,但是地图上可以移动的位置变多后需要设置的路径就会相当多,非常繁杂的感觉
因此,就想知道移动的时候,可否以指定的坐标为终点,自动寻路移动过去之类的,如果能直线移动最好,或者左上右上这样斜方向移动也不错
————————
或者来让玩家接近事件、以及事件接近事件之类的方式?

如果可以当然还是希望直线移动而不是沿着格子走的,要是是显示图片,移动一下倒也就好了……可惜还是事件,不过感觉这样应该就需要脚本了
梦石
10
星屑
39550
在线时间
1919 小时
注册时间
2010-11-14
回帖
3214

R考场第七期纪念奖

发表于 2020-5-14 00:55:14 | 显示全部楼层
本帖最后由 KB.Driver 于 2020-5-14 00:58 编辑

以前写的一个东西,也许能满足需要,不过应该不是最优化的代码。

移动路线中写脚本chase("xxx")
则会去追最近的注释写有xxx的事件

可以在你想让事件跑去的点上弄个透明事件,注释里加个关键词,
然后让人物执行移动路线chase("xxx")

注意每次chase只会走一步,因此需要循环。
如果走到了位置,你可以用分歧判断结束chase的循环。


11.gif

[pre lang="ruby"]#==================================================================
#  追逐事件 by Calendar99
#
#    追逐者设置移动路线--脚本--chase("string"),循环执行。
#    之后追逐者会追逐地图上最近的注释有string的事件。
#    可以在脚本中加入分歧判断,让事件在不追逐的时候执行其他行动。
#
#==================================================================
class Game_Character
  
  def chase(string)
    return false unless (event = get_chasing_event(string))
    move_toward_character(event)
    true
  end
  
  def distance_to(character)
    distance_x = (self.x - character.x).abs
    distance_y = (self.y - character.y).abs
    return distance_x + distance_y
  end
  
  def get_chasing_events(string)
    $game_map.events.select{|id, event| event.match(string) }
  end
  
  def get_chasing_event(string)
    return unless (event_hash = get_chasing_events(string))
    event_array = []
    event_hash.each_value{|event| event_array << event}
    event_array.sort{|a, b| self.distance_to(a) <=> self.distance_to(b) }.first
  end
  
end

class Game_Event
  
  def match(string)
    @list.each do |command|
      next unless command.code == 108 #注释
      return true if command.parameters[0].index(string)
    end
    false
  end
  
end[/pre]

点评

啊!!太久没上P1了,抱歉今天才看到!!这个真的很棒,超感谢55555!  发表于 2020-9-21 00:15

评分

参与人数 1星屑 +100 收起 理由
VIPArcher + 100 认可答案

查看全部评分

用头画头像,用脚写脚本
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部