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

Project1

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

[已经解决] 如何能快速找到想要的事件id

[复制链接]

Lv4.逐梦者

梦石
0
星屑
14576
在线时间
2192 小时
注册时间
2019-1-24
帖子
1123

R考场第七期纪念奖

跳转到指定楼层
1
发表于 2021-2-3 20:19:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 miantouchi 于 2021-2-4 19:36 编辑

有个疑问,如果随着工程量变大,一张地图里面有许许多多的事件,假如有200个事件,怎么能快速找到第33个事件,
如何能从这些事件中快速找到并行事件。,如果前期一个误操作,或者设计的不得当,并行事件过多,怎么才能快速找到
设置并行事件。

Lv3.寻梦者

梦石
0
星屑
2270
在线时间
125 小时
注册时间
2015-8-14
帖子
22
2
发表于 2021-2-3 20:35:33 | 只看该作者
本帖最后由 Hello``Bubble 于 2021-2-3 20:53 编辑

#展示33号事件的X和Y坐标
p $game_map.events[33].x,$game_map.events[33].y

#查找所有事件
for event in $game_map.events.values
  #如果是并行处理
  if event.trigger == 4
     p “并行处理”,event.x,event.y
  end
end

不运行工程需要打开一些文件其实都是一样的
RUBY 代码复制
  1. 地图ID = 1
  2.  
  3. $data_tilesets      = load_data("Data/Tilesets.rxdata")
  4. $data_common_events = load_data("Data/CommonEvents.rxdata")
  5. $game_map           = Game_Map.new
  6. $game_map.setup(地图ID)
  7.  
  8. p $game_map.events[1].x,$game_map.events[1].y  # 寻找1号事件的位置
  9. exit

点评

试了下确实可以,工程如果不运行能直接找到吗?  发表于 2021-2-3 20:51

评分

参与人数 2星屑 +20 +1 收起 理由
RyanBern + 20 塞糖
miantouchi + 1 精品文章

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
7981
在线时间
1183 小时
注册时间
2007-7-29
帖子
2055
3
发表于 2021-2-4 02:31:01 | 只看该作者
本帖最后由 enghao_lim 于 2021-2-4 23:20 编辑

RUBY 代码复制
  1. maps = load_data("Data/MapInfos.rxdata")
  2. typ = ["决定键", "角色接触", "事件接触", "自动", "并行"]
  3. f = File.open("events.txt", "w")
  4. f.write("地图\t事件编号\t事件名称\t启动方式\tX坐标\tY坐标\r\n")
  5. maps.each{|m|
  6.   id = m[0];
  7.   name = m[1].name;
  8.   data = load_data(sprintf("Data/Map%03d.rxdata", id))
  9.   events = data.events
  10.   events.each{|e|
  11.     f.write(name + "\t" + e[0].to_s + "\t" + e[1].name + "\t" + typ[e[1].pages[0].trigger] +  "\t" + e[1].x.to_s + "\t" + e[1].y.to_s + "\r\n")
  12.   }
  13.  
  14. }
  15. f.close()
  16. exit

点评

好强,非常好用!  发表于 2021-2-5 20:57
启动方式其实是根据事件页的,我懒得搞太复杂,只拿了第一个事件页的启动方式,用以上编辑过的脚本即可。  发表于 2021-2-4 23:21
或者在你输出文本加上一列,事件类别,是并行事件或者,自动事件也行  发表于 2021-2-4 19:36
如果,我想查出来所有 并行事件应该怎么弄  发表于 2021-2-4 19:25

评分

参与人数 3星屑 +100 +2 收起 理由
RyanBern + 100 认可答案
miantouchi + 1 认可答案
89444640 + 1 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
36382
在线时间
10788 小时
注册时间
2009-3-15
帖子
4813
4
发表于 2021-2-4 22:02:29 | 只看该作者
本帖最后由 soulsaga 于 2021-2-5 09:02 编辑

RUBY 代码复制
  1. maps = load_data("Data/MapInfos.rxdata")
  2. f = File.open("events.txt", "w")
  3. f.write("地图\t事件编号\t事件名称\tX坐标\tY坐标\r\n")
  4. maps.each{|m|
  5.   id = m[0];
  6.   name = m[1].name;
  7.   data = load_data(sprintf("Data/Map%03d.rxdata", id))
  8.   events = data.events
  9.   events.each{|e|
  10.   e[1].pages.each{|r|
  11.     f.write(name + "\t" + e[0].to_s + "\t" + e[1].name + "\t" + e[1].x.to_s + "\t" + e[1].y.to_s + "\r\n") if r.trigger==4#如果事件页是 [并行处理] 的情况下
  12.   }
  13.   }
  14. }
  15. f.close()
  16. exit


引用楼上大佬的脚本

萌新不懂脚本..如果有写错请帮忙

点评

哦..写漏了...感谢  发表于 2021-2-5 09:02
r.trigger = 4 才会是并行处理。  发表于 2021-2-4 23:22

评分

参与人数 1+1 收起 理由
miantouchi + 1 精品文章

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-13 10:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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