查看: 1382|回复: 2

关于物品、仓库系统豪华版的问题

  [复制链接]
梦石
0
星屑
50
在线时间
7 小时
注册时间
2007-5-22
回帖
51
发表于 2009-4-19 09:44:42 | 显示全部楼层 |阅读模式

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

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

×
一个很老的脚步了,今天拿出了研究了一下!
发现一个问题想请教一下
函数:have_item?(item),判断是否拥有某物,这一项中的(item)里输入的是啥??
谢谢!!!
这是脚本的网页
http://rpg.blue/web/htm/news489.htm
此贴于 2009-4-19 9:54:22 被版主凌辰提醒,请楼主看到后对本贴做出回应。
版务信息:版主帮忙结贴~
梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
回帖
1912
发表于 2009-4-19 16:04:09 | 显示全部楼层
其实要解决这类问题,只要会搜索脚本,追踪函数间的调用层次就行了~

→ 打开该脚本的页面,Ctrl+F 搜索 def have_item? ,这是定义该函数的地方
→ 发现这个函数返回的是 [@item 数组是否包含要搜索的物品] 的结果,于是搜索 @item
→ 反复点击[查找下一个],发现 push 到 @item 中的只有以下三种类型:

    $data_items
    $data_weapons
    $data_armors

也就是说 have_items? 这个函数是根据数据库物品、武器、防具这三种不同类型的实例对象来判断是否拥有某物品的~
所以在调用 have_item? 的时候应该是以下形式:

(Game_Actor 类型对象).have_item?($data_items[编号])
(Game_Actor 类型对象).have_item?($data_weapons[编号])
(Game_Actor 类型对象).have_item?($data_armors[编号])


注意要区分没有继承关系的两个类中相同名字的变量,他们之间是不能划等号的,像 Game_Party 中也有一个 @items ,但这个 @items 却是一个以物品 ID 为键,物品数量为值的哈希表,和 Game_Actor 中的物品数组完全不同
版主对此帖的认可:『认真的孩子是有奖励的。』,积分『+100』。
系统信息:本贴由本区版主认可为正确答案,66RPG感谢您的热情解答~
回复

使用道具 举报

梦石
0
星屑
50
在线时间
7 小时
注册时间
2007-5-22
回帖
51
 楼主| 发表于 2009-4-19 17:52:00 | 显示全部楼层
原来是这样受教了……
版主对此帖的评论:『问题解决请结贴。』,积分『-0』。这些被扣积分的一半会用于对本帖正确答案的悬赏。
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部