设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1666|回复: 5
打印 上一主题 下一主题

[已经解决] 离主角最近的事件ID

[复制链接]

Lv3.寻梦者

梦石
0
星屑
2044
在线时间
758 小时
注册时间
2013-7-3
帖子
127
跳转到指定楼层
1
发表于 2014-9-18 14:56:33 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

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

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

x
那位大神知道获取离角色最近的事件ID的脚本怎么写吗?我到网上找半天了都没找到啊!

评分

参与人数 1星屑 +35 收起 理由
︶ㄣ牛排ぶ + 35 手动认可奖励

查看全部评分

签名什么的?呵呵

Lv3.寻梦者

梦石
0
星屑
1358
在线时间
1295 小时
注册时间
2012-8-4
帖子
749
6
发表于 2014-9-18 23:16:49 手机端发表。 | 只看该作者
夜狠简单 发表于 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      # 执行场所移动

点评

x=$game_map.events.x #取事件x坐标 y=$game_map.events.y #取事件y坐标 换为 x=$game_map.events[i].x #取事件x坐标 y=$game_map.events[i]..y #取事件y坐标  发表于 2015-2-1 22:47

评分

参与人数 2星屑 +205 收起 理由
︶ㄣ牛排ぶ + 200 认可答案
x水管修理工x + 5 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1358
在线时间
1295 小时
注册时间
2012-8-4
帖子
749
5
发表于 2014-9-18 23:11:43 手机端发表。 | 只看该作者
夜狠简单 发表于 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      # 执行场所移动
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1358
在线时间
1295 小时
注册时间
2012-8-4
帖子
749
4
发表于 2014-9-18 19:06:32 手机端发表。 | 只看该作者
楼主稍等。我帮你做。你觉得他那样判断一个事件一个事件写麻烦对吧
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
2044
在线时间
758 小时
注册时间
2013-7-3
帖子
127
3
 楼主| 发表于 2014-9-18 15:13:29 | 只看该作者
stella 发表于 2014-9-18 15:03
类似这样?
https://rpg.blue/forum.php?mod=viewthread&tid=369849&highlight=%E6%9C%80%E8%BF%91 ...

这个有些麻烦,有没有简单点的呀!
签名什么的?呵呵
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
231 小时
注册时间
2007-12-17
帖子
541
2
发表于 2014-9-18 15:03:34 | 只看该作者
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-9-21 19:44

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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