赞 | 2 |
VIP | 143 |
好人卡 | 1 |
积分 | 1 |
经验 | 216792 |
最后登录 | 2019-10-10 |
在线时间 | 24 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 61
- 在线时间
- 24 小时
- 注册时间
- 2008-8-5
- 帖子
- 1924
|
其实要解决这类问题,只要会搜索脚本,追踪函数间的调用层次就行了~
→ 打开该脚本的页面,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感谢您的热情解答~ |
|