Project1

标题: 离主角最近的事件ID [打印本页]

作者: x水管修理工x    时间: 2014-9-18 14:56
标题: 离主角最近的事件ID
那位大神知道获取离角色最近的事件ID的脚本怎么写吗?我到网上找半天了都没找到啊!
作者: stella    时间: 2014-9-18 15:03
类似这样?
https://rpg.blue/forum.php?mod=v ... =%E6%9C%80%E8%BF%91
作者: x水管修理工x    时间: 2014-9-18 15:13
stella 发表于 2014-9-18 15:03
类似这样?
https://rpg.blue/forum.php?mod=viewthread&tid=369849&highlight=%E6%9C%80%E8%BF%91 ...

这个有些麻烦,有没有简单点的呀!
作者: 夜狠简单    时间: 2014-9-18 19:06
楼主稍等。我帮你做。你觉得他那样判断一个事件一个事件写麻烦对吧
作者: 夜狠简单    时间: 2014-9-18 23:11
夜狠简单 发表于 2014-9-18 19:06
楼主稍等。我帮你做。你觉得他那样判断一个事件一个事件写麻烦对吧

找到scene_map脚本页
然后看下面的
  if input.trigger?(input:: F7)
.......
end
这段内容就是计算事件和主角距离的了

     # 按照地图、实例、主角的顺序刷新      # (本更新顺序不会在满足事件的执行条件下成为给予角色瞬间移动      #  的机会的重要因素)      $game_map.update      $game_system.map_interpreter.update      $game_player.update      # 系统 (计时器)、画面刷新      $game_system.update      $game_screen.update            if Input.trigger?(Input::F7)         a=$game_map.events.size #取地图事件个数         $zuobiao=[]         $zuobiaofz=[]         $geshu=[]         $xunhuanjishu=0         b=$game_player.x#取主角x坐标         c=$game_player.y#取主角y坐标         for i in 1..a            x=$game_map.events.x #取事件x坐标            y=$game_map.events.y #取事件y坐标            d=Math.sqrt((b-x)**2+(c-y)**2) #计算两点间的距离            $zuobiao[i-1]=d            $zuobiaofz[i-1]=d          end       #数组按小到大排列顺序       e=$zuobiaofz.sort![0]       #计算事件离主角距离相同的情况       $zuobiao.each{|i|       $geshu.push $xunhuanjishu  if i==e         $xunhuanjishu+=1 }       #输出离主角最近的事件ID和事件名称       for g in 0..$geshu.size-1       h=$geshu[g]       p $game_map.events[h+1].id#暂时定义为用p输出,这里可以改为自己喜欢的方式       end      end             # 如果主角在场所移动中就中断循环      unless $game_temp.player_transferring        break      end      # 执行场所移动
作者: 夜狠简单    时间: 2014-9-18 23:16
夜狠简单 发表于 2014-9-18 19:06
楼主稍等。我帮你做。你觉得他那样判断一个事件一个事件写麻烦对吧

     手机就是烦。看按下F7那一段 这是放在scene_map脚本页里写的
# 按照地图、实例、主角的顺序刷新      # (本更新顺序不会在满足事件的执行条件下成为给予角色瞬间移动      #  的机会的重要因素)      $game_map.update      $game_system.map_interpreter.update      $game_player.update      # 系统 (计时器)、画面刷新      $game_system.update      $game_screen.update            if Input.trigger?(Input::F7)         a=$game_map.events.size #取地图事件个数         $zuobiao=[]         $zuobiaofz=[]         $geshu=[]         $xunhuanjishu=0         b=$game_player.x#取主角x坐标         c=$game_player.y#取主角y坐标         for i in 1..a            x=$game_map.events.x #取事件x坐标            y=$game_map.events.y #取事件y坐标            d=Math.sqrt((b-x)**2+(c-y)**2) #计算两点间的距离            $zuobiao[i-1]=d            $zuobiaofz[i-1]=d          end       #数组按小到大排列顺序       e=$zuobiaofz.sort![0]       #计算事件离主角距离相同的情况       $zuobiao.each{|i|       $geshu.push $xunhuanjishu  if i==e         $xunhuanjishu+=1 }       #输出离主角最近的事件ID和事件名称       for g in 0..$geshu.size-1       h=$geshu[g]       p $game_map.events[h+1].id#暂时定义为用p输出,这里可以改为自己喜欢的方式       end      end             # 如果主角在场所移动中就中断循环      unless $game_temp.player_transferring        break      end      # 执行场所移动




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