Project1

标题: 请问如何判断离主角最近的事件? [打印本页]

作者: 幼吾幼    时间: 2014-8-28 01:10
标题: 请问如何判断离主角最近的事件?
请问如何判断离主角最近的事件?
注意:事件是可以自由移动的,且是”接近主角“
           
作者: taroxd    时间: 2014-8-28 05:31
未测试,获取最近的事件ID:
$game_map.events.min_by {|id, event| (event.x - $game_player.x).abs + (event.y - $game_player.y).abs }.first
作者: 幼吾幼    时间: 2014-8-28 09:02
taroxd 发表于 2014-8-28 05:31
未测试,获取最近的事件ID:
$game_map.events.min_by {|id, event| (event.x - $game_player.x).abs + (ev ...

怎么用那?
作者: taroxd    时间: 2014-8-28 09:17
幼吾幼 发表于 2014-8-28 09:02
怎么用那?

赋值给变量即可。变量操作-赋值-脚本
作者: 幼吾幼    时间: 2014-8-28 11:09
taroxd 发表于 2014-8-28 09:17
赋值给变量即可。变量操作-赋值-脚本

可不可以:
脚本:$game_map.events.min_by {|id, event| (event.x - $game_player.x).abs + (event.y - $game_player.y).abs }.first=变量[01]

4410a9d340bd5c6d960a166e.jpg (29.12 KB, 下载次数: 36)

4410a9d340bd5c6d960a166e.jpg

作者: taroxd    时间: 2014-8-28 11:17
幼吾幼 发表于 2014-8-28 11:09
可不可以:
脚本:$game_map.events.min_by {|id, event| (event.x - $game_player.x).abs + (event.y -  ...

那就在事件指令-脚本里这样写:
$game_variables[变量id] = 上面那一段脚本

并且,如果被迫换行的话,除了最后一行之外每行最后加一个 \
作者: 幼吾幼    时间: 2014-8-28 12:03
taroxd 发表于 2014-8-28 11:17
那就在事件指令-脚本里这样写:
$game_variables[变量id] = 上面那一段脚本

是这样吗?

4410a9d340bd5c6d960a166e.jpg (16.11 KB, 下载次数: 32)

4410a9d340bd5c6d960a166e.jpg

作者: 幼吾幼    时间: 2014-8-28 12:52
taroxd 发表于 2014-8-28 11:17
那就在事件指令-脚本里这样写:
$game_variables[变量id] = 上面那一段脚本

去掉了.first 还是不行,不过谢谢啦!
作者: 君虫丶    时间: 2014-8-30 02:09
在事件页有个获取指定位置的信息,代入变量3,判定:变量3 != 0
                                                                      则  脚本
                                                                        end
具体可以参考我的VA的事件脚本战斗
作者: 幼吾幼    时间: 2014-8-30 16:18
君虫丶 发表于 2014-8-30 02:09
在事件页有个获取指定位置的信息,代入变量3,判定:变量3 != 0
                                         ...

嗯……我是要做枪战……
作者: 幼吾幼    时间: 2014-11-2 13:38
标题: 如何判断离主角最近的事件id?
如:主角朝左时:

但事件位置改变后:

强烈需要!求帮助!!!!
作者: VIPArcher    时间: 2014-11-2 14:52
本帖最后由 VIPArcher 于 2014-11-2 14:58 编辑

沙发不是回答了吗?如果是因为脚本框太小楼下也告诉你解决方法了不是吗?
如果还不行还可以把它写到Game_Interpreter里啊 ,例如
事件调用 get_minfromev_id 返回距离最近的事件ID。
例如变量赋值里的脚本输入get_minfromev_id
随便写的,本体就是沙发taroxd写的方法
  1. class Game_Interpreter
  2.   def get_minfromev_id
  3.     $game_map.events.min_by {|id, event|
  4.     (event.x - $game_player.x).abs + (event.y - $game_player.y).abs
  5.     }.first
  6.   end
  7. end
复制代码
未测试




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