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

Project1

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

[已经解决] 怎么返回事件页的“ID”?

[复制链接]

Lv1.梦旅人

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

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

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

x
本帖最后由 俄罗斯方块 于 2014-6-30 22:45 编辑

不进入游戏,只站在脚本与数据库的角度来看,事件页与事件页之间没有绝对的差别,也就是ID。是这样吗?
就是说,事件页是没有Id的。两个事件页如果条件图案指令完全相同的话,那在电脑看来它们就是同一个事件页是吗?
如果是的话,
      为什么在RMaker里编辑事件的时候事件页会有编号1、2、3?这个1、2、3只是为了方便作者吗?
而且
      如果两个内容不同的事件页的启动条件一样,那么事件为什么只执行其中一个?何来的优先级顺序?
如果不是的话,
      那么通过谁(event?interpreter?page?)的什么方法或实例变量可以返回那种类似于ID的东西?

Lv4.逐梦者 (版主)

无限の剣制

梦石
0
星屑
10073
在线时间
5020 小时
注册时间
2013-2-28
帖子
5030

开拓者贵宾

2
发表于 2014-6-29 13:33:34 | 只看该作者
不是很懂,但是如果两个事件页条件一样,那么会先执行编号大的那页事件。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
130 小时
注册时间
2013-6-30
帖子
92
3
 楼主| 发表于 2014-6-29 13:34:56 | 只看该作者
VIPArcher 发表于 2014-6-29 13:33
不是很懂,但是如果两个事件页条件一样,那么会先执行编号大的那页事件。 ...

也就是说那个编号是真实存在的吗?那么通过什么方法可以返回该事件页的编号呢?
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

4
发表于 2014-6-29 13:36:12 | 只看该作者
本帖最后由 taroxd 于 2014-6-29 13:37 编辑

RUBY 代码复制
  1. event.pages.index(page) + 1


event是RPG::Event的实例,也就是数据库中地图里的事件;page是RPG::Event::Page的实例,也就是数据库的事件页

未测试

点评

我相信没人会蛋疼到为 RPG::Event::Page 去定义个 == 的  发表于 2014-6-29 14:07
除非你私自打开过rvdata2文件,否则不可能出现事件页相同的情况  发表于 2014-6-29 14:06
不可能。==当且仅当两个对象是同一对象时才会为真  发表于 2014-6-29 14:05
两个事件页完全相同的情况怎么办?  发表于 2014-6-29 13:58
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
269 小时
注册时间
2014-5-9
帖子
127

开拓者

5
发表于 2014-6-29 13:39:38 | 只看该作者
本帖最后由 泉塚四季 于 2014-6-29 13:46 编辑

站在数据库的地方来看,每一页都是事件页数组中的一个元素,比如这个数组[1,1],两个都是1,但是它们却是有差别的。
而进入游戏后事件的实例则通过Game_event中的find_proper_page寻找出合适的事件页进行读取,事件实例中同时保存了数据库中的全部事件页数组以及自己本身要执行的那个事件页的事件列表
优先级顺序也就这么出来了,第一个找到的可以执行的事件列表就是最优先的
要返回读取了哪个事件页方法也很简单,在find_proper_page方法里加一个变量记录一下就好
泉眼无声惜细流,树阴照水爱晴柔。
小荷才露尖尖角,早有蜻蜓立上头。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
130 小时
注册时间
2013-6-30
帖子
92
6
 楼主| 发表于 2014-6-29 13:42:39 | 只看该作者
taroxd 发表于 2014-6-29 13:36
event.pages.index(page) + 1[/pre]

event是RPG::Event的实例,也就是数据库中地图里的事件;page是RPG::E ...

报错,说没有找到适用于<Game_Event:某某某>的方法pages。
我又定义了attr_accessor  :pages
结果报错说没有找到适用于nil的方法index。。。。。。。

点评

Game_Event 和 RPG::Event 是不一样的  发表于 2014-6-29 13:47
好奇怪啊。明明看到默认脚本里有@event.pages这样的代码,为什么我那样会返回nil?  发表于 2014-6-29 13:46
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
130 小时
注册时间
2013-6-30
帖子
92
7
 楼主| 发表于 2014-6-29 13:44:39 | 只看该作者
泉塚四季 发表于 2014-6-29 13:39
站在数据库的地方来看,每一页都是事件页数组中的一个元素,比如这个数组[1,1],两个都是1,但是它们却是有 ...

说的是啊。归根结底他们无非是数组里的两个数组。
事件肯定执行第一个符合条件的那一个。
我现在去试试在find_proper_page里加一个变量的方法
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

8
发表于 2014-6-29 13:46:34 | 只看该作者
俄罗斯方块 发表于 2014-6-29 13:42
报错,说没有找到适用于的方法pages。
我又定义了attr_accessor  :pages
结果报错说没有找到适用于nil的 ...


我说的很清楚,是RPG::Event的实例而不是Game_Event
一般来说,基本上没有获取事件页id的必要

点评

哈?抱歉,脚本小白想当然的就以为RPG::Event是Game_Event了。  发表于 2014-6-29 13:48
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
22713
在线时间
8623 小时
注册时间
2011-12-31
帖子
3367
9
发表于 2014-6-29 18:19:27 | 只看该作者
本帖最后由 tseyik 于 2014-6-29 18:22 编辑

イベントの呼び出し拡張
http://canarialt.blog.fc2.com/blog-entry-73.html
このスクリプトは既存の機能である「コモンイベントの呼び出し」を拡張した機能を実装します。


マップイベントの呼び出し
コモンイベントの呼び出しのマップイベント版です。
イベントIDとページ番号を指定して呼び出します。
IDの代わりにイベント名を指定して呼び出す事も可能です。
※同一名が複数見つかった場合は念の為にコンソールに注意を表示します。


並列処理で呼び出し
通常の呼び出し方法に加えて、並列処理で呼び出す事も出来ます。
通常の呼び出しの場合は、呼び出したイベントが終了するまで待ちますが、
並列処理で呼び出した場合は、終了を待たずにイベントコマンドの処理を続けます。

クローンイベントEX
http://canarialt.blog.fc2.com/blog-entry-68.html
このスクリプトは同じ内容・似た内容のマップイベントの作成を補助するスクリプトです。
マップイベントのクローンのマップイベントを作成できるようにします。
オリジナルの完全なコピーではなく一部のイベント内容を変更したクローンの作成も可能です。
また、クローンに限らず全てのマップイベントで別のイベントページの内容を継承する機能を利用できるようになります。
これは以前に公開した「クローンイベント」の改良版のスクリプトです。スクリプト名のEXはextendのEXです。


点评

:call_map_event(5, 0) #=> イベントID 5番の表示中のページを呼び出し  发表于 2014-6-29 18:35
第一個是可喚出事件,頁如call_map_event(id, page_num):parallel_event(0, 3) #=> このイベントのページ番号 3番を呼び出し(並列処理)  发表于 2014-6-29 18:34
↓ 而且还需要翻墙+1  发表于 2014-6-29 18:30
而且还要翻墙  发表于 2014-6-29 18:28
我总觉得楼主看不懂,而且脚本内容和问题没什么关系?  发表于 2014-6-29 18:26
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
130 小时
注册时间
2013-6-30
帖子
92
10
 楼主| 发表于 2014-6-29 21:57:57 | 只看该作者
tseyik 发表于 2014-6-29 18:19
イベントの呼び出し拡張
http://canarialt.blog.fc2.com/blog-entry-73.html
このスクリプトは既存の機能で ...

哈,我看到你这个头像我就猜到回复内容是什么了,果不其然。
新高三表示确实看不懂。
算了,结贴了吧。我问这个问题主要是想实现类似于事件复制一样的效果,但又不想用搜索到的那个从某个作为仓库的地图里拷贝事件到指定位置的脚本。总之,结贴了吧。
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-25 15:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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