赞 | 471 |
VIP | 56 |
好人卡 | 75 |
积分 | 407 |
经验 | 124650 |
最后登录 | 2025-2-18 |
在线时间 | 7541 小时 |
Lv5.捕梦者 (管理员) 老黄鸡
- 梦石
- 0
- 星屑
- 40698
- 在线时间
- 7541 小时
- 注册时间
- 2009-7-6
- 帖子
- 13506
![开拓者](static/image/common/p1/thx.png) ![贵宾](static/image/common/p1/rem.png)
|
本帖最后由 fux2 于 2011-8-13 11:29 编辑
零式翅膀 发表于 2011-8-13 11:12 ![]()
额 尝试搜索一下 没有找到斑竹大大的帖子耶- - 主要是如果通过商店以外的再获得物品还是会获得 如果要通 ...
好吧我现在用电脑了。
为了有点启发性,我们绕个弯弯.
因为是“获取物品”操作,想增加提示肯定是要在此操作上动手脚.
按 F11打开脚本编辑器,按下Ctrl+Shift+F,输入"增减物品",确定
然后经过判断(事件运行的解释都是在分割定义里的.),所以可以在
Interpreter 4的220行开始看到这一段- def command_126
- # 获取要操作的值
- value = operate_value(@parameters[1], @parameters[2], @parameters[3])
- # 增减物品
- $game_party.gain_item(@parameters[0], value)
- # 继续
- return true
- end
复制代码 由此得知解释器是调用$game_party.gain_item来获取道具的.
$game_party 是一个Game_Party类,在这个类里你可以看到gain_item方法的定义- def gain_item(item_id, n)
- # 更新 hash 的个数数据
- if item_id > 0
- @items[item_id] = [[item_number(item_id) + n, 0].max, 99].min
- end
- end
复制代码 默认系统这里的获取本身就有点浪费效率,虽然可以无视,但是扩展性就被抹杀了.
所以我们可以改成- def gain_item(item_id, n)
- if item_id > 0
- if item_number(item_id) + n > 99
- @items[item_id] = 99
- elsif item_number(item_id) + n <=0
- @items[item_id] = 0
- else
- @items[item_id] = item_number(item_id) + n
- end
- end
- end
复制代码 这样我们就可以在=99的部分做手脚
例子:- def gain_item(item_id, n)
- if item_id > 0
- if item_number(item_id) + n > 99
- @items[item_id] = 99
- $game_temp.message_text = "道具已满"
- elsif item_number(item_id) + n <=0
- @items[item_id] = 0
- else
- @items[item_id] = item_number(item_id) + n
- end
- end
- end
复制代码 |
|