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

Project1

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

[已经解决] 忍不住问一个很白痴的问题

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
18 小时
注册时间
2009-8-14
帖子
56
跳转到指定楼层
1
发表于 2010-6-28 01:21:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 hhwknight 于 2010-6-28 18:16 编辑

在不改动源程序任何脚本的情况下,运行游戏后,打开菜单,点开物品栏,然后光标停在一个道具上时,此时@item.id这个变量的值是多少?

Lv1.梦旅人

梦石
0
星屑
50
在线时间
18 小时
注册时间
2009-8-14
帖子
56
2
 楼主| 发表于 2010-6-28 01:34:50 | 只看该作者
按道理来讲,我觉得,应该是此时光标所停的道具的id编号才对,可是为什么我把这个值引用出来的时候始终是1?
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
3
发表于 2010-6-28 01:45:58 | 只看该作者
不知道是你引用错了还是什么,在 Windows_Selectable 的以下一段中添加红色部分,就能看到在物品栏中按下方向键右时物品编号的变化:
      # 方向键右被按下的情况下
      if Input.repeat?(Input::RIGHT)
        p self.item.id if self.class == Window_Item
        # 列数为 2 以上并且、光标位置在(项目数 - 1)之前的情况下
        if @column_max >= 2 and @index < @item_max - 1
          # 光标向右移动
          $game_system.se_play($data_system.cursor_se)
          @index += 1
        end
      end

点评

哦,忘了,如果是物品项分别来自武器、防具和物品这三个不同的种类的话,ID 是可以相同的  发表于 2010-6-28 01:49
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
18 小时
注册时间
2009-8-14
帖子
56
4
 楼主| 发表于 2010-6-28 01:52:03 | 只看该作者
本帖最后由 hhwknight 于 2010-6-28 02:40 编辑

回复 紫苏 的帖子
辛苦了辛苦了,我去试了,确实出来的是物品id号码,不是1。
我是在公共事件中写了这么几句
if $game_actors[1].level==$game_actors[@item.id].level
$game_temp.message_text =
"等级不够,无法召唤。"
end
然后给一个道具调用了这个事件。于是总出现上面那句话....这是什么原因呢?
    补充:道具调用这个公共事件的方法是当使用该道具时,即按下确认键时。(貌似是废话)
再补充:上面脚本中$game_actors[1].level的值是1,即1号主角等级1,我引用的34号道具,34号主角的等级是15,如果此时@item.id=34的话,上面那句话应该不会出现才对啊
最后补充:我郁闷了,刚刚用p命令测出此时@item.id值竟然是4?郁闷,想不通了,睡觉去。。。。。残念。。。。

点评

- -b请先理解实变量的意义  发表于 2010-6-28 10:53
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
帖子
1924
5
发表于 2010-6-28 03:06:07 | 只看该作者
原来你是这么干的 =w=
你用事件写的脚本,其上下文是在 Interpreter 这个类的实例上下文中,而该上下文中并没有 @item 这个实例变量,所以引用 @item 的话就会引用到 nil,@item.id 也就成了 nil.id,这时 ID 就被路由·到 Object#id 方法了,也就是 Ruby 对象的唯一标识,那么 nil 这个单例的唯一标识永远是 4,即是说 $game_actors[@item.id] 实际上会被重写为 $game_actors[4]

你可以在 Scene_Item 里找到所有 if @item.common_event_id > 0 的分歧,然后在分歧下用全局变量记录 @item.id,然后在公共事件中引用
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
18 小时
注册时间
2009-8-14
帖子
56
6
 楼主| 发表于 2010-6-28 18:02:00 | 只看该作者
回复 紫苏 的帖子
明白了,太感谢了。。。刚刚试了,已经成功引用。
感激涕零~~~
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-12-25 15:24

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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