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

Project1

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

[已经解决] 求问有没有办法搜索公共事件触发的事件位置?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
11 小时
注册时间
2014-2-9
帖子
2
跳转到指定楼层
1
发表于 2014-2-16 21:22:12 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
汉化游戏的时候发现一个公共事件却在地图中怎么都找不到,应该也不是有意隐藏的,因为只有这一个公共事件没有找到对应的地方,所以想问问有什么快速的方法找到这个公共事件到底是在哪里触发使用的?

Lv1.梦旅人

狂気の月兔

梦石
0
星屑
231
在线时间
1245 小时
注册时间
2009-4-7
帖子
879

贵宾

来自 2楼
发表于 2014-2-20 11:21:47 | 只看该作者
变量带入地图ID的话可以查看调用公共事件的地图.
回复 支持 反对

使用道具 举报

Lv2.观梦者

永无止境的旅程

梦石
0
星屑
503
在线时间
1552 小时
注册时间
2012-6-19
帖子
1226

开拓者贵宾

3
发表于 2014-2-19 13:20:09 | 只看该作者
最简单的办法就是一个一个找。

也有可能执行的是脚本。
[url=https://rpg.blue/thread-389697-1-1.html]https://rpg.blue/https://rpg.blue/data/attachment/forum/201602/26/220128cfbxxs47xth4xkz4.jpg[/url]
<font size="5">[color=Green][url=https://rpg.blue/forum.php?mod=viewthread&tid=396208&extra=page%3D1][color=DeepSkyBlue]全新配套ACT系统,每周末一大更新,尽请期待。[/color][/url][/color]
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv2.观梦者 (禁止发言)

梦石
0
星屑
653
在线时间
3774 小时
注册时间
2011-2-26
帖子
1839

开拓者

4
发表于 2014-2-19 14:09:23 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1343
在线时间
1295 小时
注册时间
2012-8-4
帖子
749
5
发表于 2014-2-19 23:36:53 | 只看该作者
晴兰 发表于 2014-2-19 14:09
如果能保证这个事件一定运行的话,可以加一行脚本来显示调用位置和调用者信息啥的 ...

代码该怎么写呢?最主要还是从方便的观点来。可是我完全没头绪
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1343
在线时间
1295 小时
注册时间
2012-8-4
帖子
749
6
发表于 2014-2-20 12:34:17 | 只看该作者
版主大大都出动了,有时间的话我看下能不能写一段公共事件不执行也能找出所有与它相关的地图ID的代码。不过楼主解决了没有吱一声嘛

点评

嗯嗯  发表于 2014-2-21 14:26
咱出现很稀奇么?  发表于 2014-2-20 12:52
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1343
在线时间
1295 小时
注册时间
2012-8-4
帖子
749
7
发表于 2014-2-21 14:25:43 | 只看该作者
铃仙·优昙华院·因幡 发表于 2014-2-20 11:21
变量带入地图ID的话可以查看调用公共事件的地图.

这个目前可以找地图上的公共事件,至于物品和战斗事件里带有的公共事件暂时没试过。楼主什么时候回来了可以参考一下,另外版主有空的话帮我看下脚本那里该怎么写输出的数据可以不重复?

找公共事件.zip

284.17 KB, 下载次数: 48

点评

想法很完美, 只是输出的内容需要整理下.  发表于 2014-2-21 15:41

评分

参与人数 1星屑 +100 收起 理由
铃仙·优昙华院·因幡 + 100 塞糖

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

狂気の月兔

梦石
0
星屑
231
在线时间
1245 小时
注册时间
2009-4-7
帖子
879

贵宾

8
发表于 2014-2-21 17:23:26 | 只看该作者
本帖最后由 铃仙·优昙华院·因幡 于 2014-2-21 17:31 编辑

RUBY 代码复制
  1. module Reisen
  2.   class MapCommonEvent
  3.     def initialize(startID = 1, endID = 100)
  4.       @map_id = startID - 1
  5.       @fp = File.open("CommonEvent.log", "w")
  6.       while @map_id <= endID
  7.         begin
  8.           @map_id += 1
  9.           @map = load_data(sprintf("Data/Map%03d.rvdata", @map_id))
  10.           @fp.write("地图ID:#{@map_id}\n")
  11.           write_event
  12.         rescue
  13.           @fp.write("地图ID:#{@map_id}不存在\n")
  14.           next
  15.         end
  16.       end
  17.       @fp.close
  18.     end
  19.     def write_event
  20.       @map.events.each do |key, value|
  21.         value.pages.each do |page|
  22.           page.list.each do |list|
  23.             case list.code
  24.             when 117  # 事件调用公共事件
  25.               @fp.write("\t事件ID:#{key},事件坐标(#{value.x},#{value.y})调用的公共事件ID为#{list.parameters[0]}\n")
  26.             when 655,355  # 脚本事件
  27.               list.parameters.each do |parameter|
  28.                 parameter =~ /\$game_temp.common_event_id\s*=\s*(\d+)/
  29.                 @fp.write("\t事件ID:#{key},事件坐标(#{value.x},#{value.y})调用的公共事件ID为#{$1}\n") if $1
  30.               end
  31.             end
  32.           end
  33.         end
  34.       end
  35.     end
  36.   end
  37. end


任意地图的任意事件 -> 事件 -> 脚本 -> Reisen::MapCommonEvent.new(start, end)

其中的 start 表示要搜索的地图ID 的开始序号, end 是结尾序号.

最后的搜索内容在工程根目录下一个 CommonEvent.log 里保存的, 内容差不多是这样的:

RUBY 代码复制
  1. 地图ID:1
  2.         事件ID:1,事件坐标(6,6)调用的公共事件ID为1
  3. 地图ID:2
  4.         事件ID:1,事件坐标(5,3)调用的公共事件ID为5
  5.         事件ID:1,事件坐标(5,3)调用的公共事件ID为422
  6. 地图ID:3不存在
  7. 地图ID:4不存在
  8. 地图ID:5不存在
  9. 地图ID:6不存在

点评

$1 是正则匹配的结果, 就是匹配脚本调用的时候的那个公共事件ID  发表于 2014-2-22 11:33
@fp.write("\t事件ID:#{key},事件坐标(#{value.x},#{value.y})调用的公共事件ID为#{$1}\n") if $1 这一句能给我说说是什么意思吗? 不清楚 if $1 放在那的用途  发表于 2014-2-21 19:55
缩进用的丧心病狂就是, 其实和你的脚本一样的原理  发表于 2014-2-21 19:00
感觉好华丽的样子,那我就先拿下了  发表于 2014-2-21 18:56

评分

参与人数 1梦石 +1 收起 理由
Luciffer + 1 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-1 16:39

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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