赞 | 0 |
VIP | 0 |
好人卡 | 0 |
积分 | 1 |
经验 | 2945 |
最后登录 | 2012-12-14 |
在线时间 | 29 小时 |
Lv1.梦旅人
- 梦石
- 0
- 星屑
- 50
- 在线时间
- 29 小时
- 注册时间
- 2008-5-23
- 帖子
- 14
|
本帖最后由 Calathus 于 2011-4-15 20:12 编辑
楼主是说 购买物品时那里的数值输入只能购买一个吗?
要时这样你试试这样修改一下吧.
在处理商店画面的类(Scene_Shop)里面找到(默认):"购买窗口激活的情况下 获取物品所持数"这里分别对物品所持数修改.
# 获取物品所持数
case @item
when RPG::Item
number = $game_party.item_number(@item.id)
# 如果下面物品ID号已经拥有了 1 个以上的情况下
if number >= 1 and @item.id == 1
# 演奏冻结 SE
$game_system.se_play($data_system.buzzer_se)
return
end
# 计算可以最多购买的数量
if @item.id == 1 # ID为1号的物品
#最大数量是1个
max = 1
#elsif @item.id == n 道具编号
#max = n 最多购买数
else
# 如果已经拥有了 99 个情况下
if number == 99
# 演奏冻结 SE
$game_system.se_play($data_system.buzzer_se)
return
end
# 计算可以最多购买的数量
max = @item.price == 0 ? 99 : $game_party.gold / @item.price
max = [max, 99 - number].min
end
# 武器
when RPG::Weapon
number = $game_party.weapon_number(@item.id)
# 如果已经拥有了 99 个情况下
if number == 99
# 演奏冻结 SE
$game_system.se_play($data_system.buzzer_se)
return
end
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 计算可以最多购买的数量
max = @item.price == 0 ? 99 : $game_party.gold / @item.price
max = [max, 99 - number].min
# 防具
when RPG::Armor
number = $game_party.armor_number(@item.id)
# 如果已经拥有了 99 个情况下
if number == 99
# 演奏冻结 SE
$game_system.se_play($data_system.buzzer_se)
return
end
# 演奏确定 SE
$game_system.se_play($data_system.decision_se)
# 计算可以最多购买的数量
max = @item.price == 0 ? 99 : $game_party.gold / @item.price
max = [max, 99 - number].min
end
大概就是这样,还有记得把这个分歧下面的(如果已经拥有了 99 个情况下..计算可以最多购买的数量)部分给注释掉,不然冲突来了.
还有要是想购买一个后不能再购买的物品颜色无效化到(Window_ShopBuy)的描绘项目里面
# 获取物品所持数
case item
when RPG::Item
number = $game_party.item_number(item.id)
# 如果玩家金钱数比物品价格上多的情况下,而且ID为n号的物品它的数量小于n的话
if (item.price <= $game_party.gold) and (item.id == 1 and number < 1)
self.contents.font.color = normal_color
# 不包括道具ID 1 号
elsif item.price <= $game_party.gold and (item.id != 1 and number < 99)
self.contents.font.color = normal_color
#elsif (item.price <= $game_party.gold) and (number < 最大数量 and item.id != 道具ID)
# self.contents.font.color = normal_color
#除此之外的情况设置为无效文字色
else
self.contents.font.color = disabled_color
end
when RPG::Weapon
number = $game_party.weapon_number(item.id)
# 价格在所持金以下、并且所持数不是 99 的情况下为普通文字颜色
# 除此之外的情况设置为无效文字色
if item.price <= $game_party.gold and number < 99# and (item.id == n and number < n)
self.contents.font.color = normal_color
else
self.contents.font.color = disabled_color
end
when RPG::Armor
number = $game_party.armor_number(item.id)
# 价格在所持金以下、并且所持数不是 99 的情况下为普通文字颜色
# 除此之外的情况设置为无效文字色
if item.price <= $game_party.gold and number < 99# and (item.id == n and number < n)
self.contents.font.color = normal_color
else
self.contents.font.color = disabled_color
end
end
最后这里下面的无效文字色分歧也要给注释掉.
大概就是这么多了呵呵..
系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~ |
|