| 赞 | 664 |
| VIP | |
| 好人卡 | |
| 积分 | 345 |
| 经验 | |
| 最后登录 | 2024-7-10 |
| 在线时间 | 5096 小时 |
- 梦石
- 0
- 星屑
- 34462
- 在线时间
- 5096 小时
- 注册时间
- 2012-11-19
- 回帖
- 4715

|
发表于 2015-2-11 13:24:19
|
显示全部楼层
本帖最后由 芯☆淡茹水 于 2015-2-11 13:26 编辑
还是把判定放到 Game_Party 里好些
[pre lang="ruby"]#==============================================================================
# 背包可容纳最大的物品种类数。(包括物品,武器,防具)
ITEMS_MAX = 5
# 背包满后,如果再增加物品所提示的信息。
TOP_MESSAGE = "背包已满!"
#==============================================================================
class Game_Party
#--------------------------------------------------------------------
def full_judge?(id, n, type)
mn = 0
@items.keys.each{|i| mn += 1 if item_number(i) > 0}
@weapons.keys.each{|i| mn += 1 if weapon_number(i) > 0}
@armors.keys.each{|i| mn += 1 if armor_number(i) > 0}
return false if mn < ITEMS_MAX
case type
when 0
if @items.keys.include?(id)
return false if item_number(id) + n <= 99
end
when 1
if @weapons.keys.include?(id)
return false if weapon_number(id) + n <= 99
end
when 2
if @armors.keys.include?(id)
return false if armor_number(id) + n <= 99
end
end
return true
end
#---------------------------------------------------------------------
def full_top
$game_system.se_play($data_system.buzzer_se)
top = Window_Base.new(200, 100, 240, 64)
top.z = 999
top.contents = Bitmap.new(top.width - 32, top.height - 32)
top.contents.draw_text(0, 0, 200, 32, TOP_MESSAGE, 1)
for i in 1..30
Graphics.update
end
for i in 1..20
top.opacity -= 13
top.contents_opacity -= 13
Graphics.update
end
top.dispose
end
#--------------------------------------------------------------------------
def gain_item(item_id, n)
# 更新 hash 的个数数据
if item_id > 0
if n > 0 and full_judge?(item_id, n, 0)
full_top
return
end
@items[item_id] = [[item_number(item_id) + n, 0].max, 99].min
end
end
#--------------------------------------------------------------------------
# ● 增加武器 (减少)
# weapon_id : 武器 ID
# n : 个数
#--------------------------------------------------------------------------
def gain_weapon(weapon_id, n)
# 更新 hash 的个数数据
if weapon_id > 0
if n > 0 and full_judge?(weapon_id, n, 1)
full_top
return
end
@weapons[weapon_id] = [[weapon_number(weapon_id) + n, 0].max, 99].min
end
end
#--------------------------------------------------------------------------
# ● 增加防具 (减少)
# armor_id : 防具 ID
# n : 个数
#--------------------------------------------------------------------------
def gain_armor(armor_id, n)
# 更新 hash 的个数数据
if armor_id > 0
if n > 0 and full_judge?(armor_id, n, 2)
full_top
return
end
@armors[armor_id] = [[armor_number(armor_id) + n, 0].max, 99].min
end
end
end
#==============================================================================[/pre] |
|