赞 | 642 |
VIP | 62 |
好人卡 | 144 |
积分 | 321 |
经验 | 110435 |
最后登录 | 2024-5-21 |
在线时间 | 5083 小时 |
Lv5.捕梦者
- 梦石
- 0
- 星屑
- 32126
- 在线时间
- 5083 小时
- 注册时间
- 2012-11-19
- 帖子
- 4877
|
本帖最后由 芯☆淡茹水 于 2015-2-11 13:26 编辑
还是把判定放到 Game_Party 里好些
#============================================================================== # 背包可容纳最大的物品种类数。(包括物品,武器,防具) 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 #==============================================================================
#==============================================================================
# 背包可容纳最大的物品种类数。(包括物品,武器,防具)
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
#==============================================================================
|
|